ES6面试题
1. var,let,const区别
共同点: var、let、const 都可以声明变量
区别:
1. var具有变量提升的机制,let、const没有
2. let和const不可重复声明同一变量,var可以
3. var、let声明变量,const声明常量
var和let声明的变量可以再次赋值,但是const不可以再次赋值了
4. var没有自己的作用域,let和const有自身的作用域
2. 作用于考题
考题一:
console.log(str)
var str ='123'
console.log(num)
let num = 10
3. 将下列对象进行合并
const a = {a:1, b:4}
const b = {b:2, c:3}
方式一: const obj1 = Object.assign(a, b)
方式二: const obj2 = {...a,...b}
方式三: 自己封装
function extend (target, source){
for (let key in source) {
target[key] = source[key]
}
return target
}
4. 箭头函数和普通函数有什么区别?
1.this指向问题
箭头函数中的this只在箭头函数定义时就决定的,而且不可修改(apply,call,bind)
***箭头函数的this指向定义时候,外层第一个普通函数的this
2. 箭头函数不能作为构造函数
3. 箭头函数没有prototype
4. 箭头函数没有arguments
5. Promise有几种状态
3种: pending(执行中), fulfilled(成功), rejected(失败)
6. find和filter的区别
区别一:返回的内容不同
filter 返回时新数组
find 返回具体的内容,返回第一个符合条件的项
区别二:
find: 匹配到第一个即返回
filter: 返回整体(没一个匹配到的返回全部)
7. some和every的区别
返回为布尔值
some ===> 如果有一项匹配则返回true
every ===> 全部匹配才会返回true