一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第7天,
记录一些笔试的题目
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<style>
.item {
width: 150px;
height: 150px;
display: flex;
border-radius: 16px;
justify-content: space-between;
background-color: rgb(248, 246, 246);
box-shadow: 2px 2px 2px black;
}
.a {
width: 30px;
height: 30px;
border-radius: 50%;
margin: 10px;
background-color: black;
}
.item .a:nth-of-type(2) {
align-self: center;
}
.item .a:nth-of-type(3) {
align-self: flex-end;
}
</style>
<body>
//用flexbox实现一个三点的骰子
<div class="item">
<span class="a"></span>
<span class="a"></span>
<span class="a"></span>
</div>
</body>
</html>
<script>
//题一,定义一个方法实现如下功能:传入一个 string 类型的参数,然后将传入的 string 每个字符之间加上一个空格 作为结果返回。例如传入“abc”,返回“a b c”;
let str = "abc"
let a = str.split("").join(" ")
console.log(a);
//题目二,假如有以下自定义的方法: function log(){ var args =
Array.prototype.slice.call(arguments); args.unshift('(gykj)');
console.log.apply(console,args); }; 如果执行这个方法如 log(‘hello’,’world’)会得到什么结果?
function log() {
// call和apply改变this指向,但是call可以有多个参数,apply要用数组存
var args = Array.prototype.slice.call(arguments)
/*
这能将有length属性的对象转换为数组,若方法中再次包含函数方法,则该嵌套函数指向全局。不能获取到本对象中的属性。
*/
console.log(args);
args.unshift('(gykj)');
console.log.apply(console, args);
/*
封装的console.log
就可以直接拿来用了,为什么要使apply再指向console呢?
是因为我们其实还是要使用console.log()这个方法来做输出,只不过每次输出的内容不一样,这里的内容就是arguments。
很明显在这个封装的方法中传入的参数是不确定的,并不确定你要在控制台输出什么东西,所以传入的参数就无法预知,这也就是call(单个字符串)和apply(数组)的区别,所以这个时候就要用到arguments对象了,官方的说法:
arguments 是一个对应于传递给函数的参数的类数组对象。
arguments对象不是一个 Array 。它类似于Array,但除了length属性和索引元素之外没有任何Array属性。
arguments在封装的方法中,是作为一个实参传递给了log()方法,例如:logInfo('hello','world'),那么arguments就是['hello','world'],使用console.log.apply(console,arguments)主要是用来把arguments中的每个参数都作为实参来传递给console.log()的。
这个方法那么会将arguments作为一个数组进行打印输出,而不是将其中的每一项作为参数传递给console.log()进行输出,很明显,上例的结果并不是我们想要的,我们想要的结果是这样的1,2 3,而apply()就正好可以实现这个需求。
*/
}
log('hello', 'world')
//题目三,如果定义一个对象如下: var User = { count : 1, getCount : function() { return this.count; }运行以下代码将会得到什么结果?(在 console 语句后面填写结果) console.log(User.getCount()); //结果: var func = User.getCount; console.log(func()); //结果:
var User = {
count: 1, //如果是一个对象内存在方法,则该方法this指向当前对象。
getCount: function () {
return this.count
}
}
console.log(User.getCount()); //输出1
var func = User.getCount
console.log(func());//输出undefined
</script>
有如下一个 div 和样式定义,请问显示的 div 有没有边框?
#test {border : none;}
.test {border : solid 1px #000;}
id选择器>类选择器 所以没有边框
如下代码中文本“Sausage”的颜色是?
- Milk
- Sausage
#awesome .favorite:not(#must-buy) .highlight {
color: red;
}
#awesome .highlight:nth-of-type(1):nth-last-of-type(1) {
color: blue;
}
答:蓝色,第一个样式 是所有非#must-buy的.highlight的字体颜色为红色,第二个样式是#awesome下的highlight第一个元素和倒数第一个元素为蓝色
GET 跟 POST 的区别,何时使用 POST 更合适?
GET:一般用于信息获取,使用URL传递参数,对所发送信息的数量也有限制,一般在2000个字符。
POST:一般用于修改服务器上的资源,对所发送的信息没有限制。
GET方式需要使用 Request.QueryString 来取得变量的值。
POST方式通过 Request.Form 来获取变量的值。
也就是说 Get 是通过地址栏来传值,而 Post 是通过提交表单来传值。
在以下情况中,请使用 POST 请求:
无法使用缓存文件(更新服务器上的文件或数据库)
向服务器发送大量数据(POST 没有数据量限制)
发送包含未知字符的用户输入时,POST 比 GET 更稳定也更可靠
VUE 中 v-model 是什么?怎么使用? vue 中标签怎么绑定事件?结合问题用代码写出具体实例
你可以用 v-model 指令在表单 <input>、<textarea> 及 <select> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。
注意需要在js的data选项中声明初始值
{{something}}
说出至少 4 种 vue 当中的指令和它的用法?
v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回 truthy 值的时候被渲染。
v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS property display。
v-for 指令基于一个数组来渲染一个列表。v-for 指令需要使用 item in items 形式的特殊语法,其中 items 是源数据数组,而 item 则是被迭代的数组元素的别名。
v-bind 指令可以用于响应式地更新 HTML attribute
按要求用代码写一个简单的 ajax 示例:
接口地址 http://202.102.22.135:8080/text_project/manage_list/,
需要传递的参数(格式:字符串):manage.type, username
需要在 header 传 token
tip:这里没给token只能随便写了,不知道对不对
$.ajax({
type: 'POST',
contentType: 'application/json',
url: 'http://202.102.22.135:8080/text_project/manage_list/',
data: {
manage: {
type: 'get'
},
username: 'admin'
},
beforeSend: req => {
req.setRequestHeader('token', token)
},
success: res => {
console.log('aa');
console.log(res);
}
})