1、let、var、const区别
1、作用域不同,var是函数作用域,而let是块作用域
2、 let不能在定义之前访问该变量,但是var是可以得。
3、 let不能被重新定义,但是var是可以的。
4、const:它用于创建一个不可变变量。
2、js 算法,判断一个数组中的数字出现多少次
let arr = [11, 11, 2, 2, 5, 5, 5, 5, 3];
//创建一个map,把每个数字和其个数相对应
let countObj = {};
for (i = 0; i <= arr.length - 1; i++) {
let v = arr[i];
if (countObj[v]) {
countObj[v]++;
} else {
countObj[v] = 1;
}
}
// console.log(countObj); //{ '2': 2, '3': 1, '5': 4, '11': 2 }
for (let key in countObj) {
if (countObj[key] === 1) {//判断在对象中出现为1次的是哪个属性
console.log(key);//3...
}
}
3、vue.$set
vue为了更加简洁,当data的数据是数组或者对象时,动态的添加或删除,视图将不会更新
4、http状态码有哪些?分别是什么意思?
1(信息类):表示接收到请求并且继续处理
100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
2(响应成功):表示动作被成功接收、理解和接受
200 OK 正常返回信息
201 Created 请求成功并且服务器创建了新的资源
202 Accepted 服务器已接受请求,但尚未处理
3(重定向类):为了完成指定的动作,必须接受进一步处理
301 Moved Permanently 请求的网页已永久移动到新位置。
302 Found 临时性重定向。
303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。
304 Not Modified 自从上次请求后,请求的网页未修改过。
4(客户端错误类):请求包含错误语法或不能正确执行
400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
401 Unauthorized 请求未授权。
403 Forbidden 禁止访问。
404 Not Found 找不到如何与 URI 相匹配的资源。
5**(服务端错误类):服务器不能正确执行一个正确的请求
500 Internal Server Error 最常见的服务器端错误。
503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。
5、ES6中新增了什么?
1、定义变量加入了 let const
2、封闭空间 {} 避免全局污染
3、字符串和变量的拼接 ${ }
4、解构赋值 ...
5、箭头函数
6、## map和reduce
数组中新增了map和reduce方法。
map
map()
:接收一个函数,将原数组中的所有元素用这个函数处理后放入新数组返回。
举例:有一个字符串数组,我们希望转为int数组
let arr = ['1','20','-5','3'];
console.log(arr)
arr = arr.map(s => parseInt(s));
console.log(arr)
reduce
reduce()
:接收一个函数(必须)和一个初始值(可选),该函数接收两个参数:
- 第一个参数是上一次reduce处理的结果
- 第二个参数是数组中要处理的下一个元素
reduce()
会从左到右依次把数组中的元素用reduce处理,并把处理的结果作为下次reduce的第一个参数。如果是第一次,会把前两个元素作为计算参数,或者把用户指定的初始值作为起始参数
举例:
const arr = [1,20,-5,3]
没有初始值:
指定初始值:
Set,本质与数组类似。不同在于Set中只能保存不同元素,如果元素相同会被忽略。跟java很像吧。
6、js箭头函数和普通函数的区别
1、this指向不同
(1)普通函数中的this:
在简单调用中,非严格模式下,指向window。严格模式下,为undefined。
箭头函数没有自己的this,内部this的值,依赖于外部非箭头函数的this。
2、构造函数
(1)普通函数
普通函数可以作为构造函数来用,用new去新建对象实例。
(2)箭头函数
不能当做构造函数去用,并且,会报错。
3、隐式return
(1)普通函数
用return去返回一个函数的结果。无return语句,或者return后面无表达式,则返回undefined。
(2)箭头函数
如果函数仅有一个表达式,那么该表达式的结果会被隐式返回
7、 判断JS数据类型的四种方法
1、typeof
2、instanceof
instanceof用来判断A是否为B的实例,表达式为:A instanceof B,如果A是B的实例,则返回true,否则返回false。instanceof检测的是原型,内部机制是通过判断对象的原型链中是否有类型的原型。
3、constructor