ES6常见面试题整理

90 阅读1分钟

1.var、let、const之间的区别

  • 1.var没有块级作用域的限制;let,const受块级作用域限制;
  • 2.var可以重复声明;let,const不能重复声明;
  • 3.const声明后必须赋值,并且值不可修改;

2.箭头函数代替function函数

  • (1)用了箭头函数,this就不是指向window,而是父级(指向是可变的)
  • (2)不能够使用arguments对象 ;
  • (3)不能用作构造函数;

3.使用模版字符串来扩展增强字符串的用途;

let str = '你好,${name} 已经 ${age}岁了'

4.新增class语法糖,让对象原型的写法更加清晰、更像面向对象编程的语法;

5.使用结构赋值,实现两个变量的值的交换

let a = 1;let b = 2;
[a,b] = [b,a];

6.ES6Array数组类型做的常用升级优化,增加扩展运算符;

7.支持Promise,async/awiwt等异步方法;

问题:

1.Promise 中reject 和 catch 处理上有什么区别

reject 是用来抛出异常,catch 是用来处理异常

2.forEach、for in、for of三者区别

  • forEach更多的用来遍历数组
  • for in 一般常用来遍历对象或json
  • for of数组对象都可以遍历,遍历对象需要通过和Object.keys()
  • for in循环出的是key,for of循环出的是value