面试进阶篇

70 阅读1分钟

ES6面试题

1. var,let,const区别

共同点: varletconst 都可以声明变量
区别:
    1. var具有变量提升的机制,letconst没有
    2. letconst不可重复声明同一变量,var可以
    3. varlet声明变量,const声明常量
       varlet声明的变量可以再次赋值,但是const不可以再次赋值了
    4. var没有自己的作用域,letconst有自身的作用域

2. 作用于考题

考题一:
console.log(str); //undefined
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 //undefined;
4. 箭头函数没有arguments

5. Promise有几种状态

3种: pending(执行中), fulfilled(成功), rejected(失败)

6. find和filter的区别

区别一:返回的内容不同
    filter 返回时新数组
    find   返回具体的内容,返回第一个符合条件的项
区别二: 
    find: 匹配到第一个即返回
    filter: 返回整体(没一个匹配到的返回全部)

7. some和every的区别

返回为布尔值
some  ===> 如果有一项匹配则返回true
every ===> 全部匹配才会返回true