1、var、let、const之间的区别
- var声明变量可以重复声明,而let不可以重复声明
- var是不受限于块级的,而let是受限于块级
- var会与window相映射(会挂一个属性),而let不与window相映射
- var可以在声明的上面访问变量,而let有暂存死区,在声明的上面访问变量会报错
- const声明之后必须赋值,否则会报错
- const定义不可变的量,改变了就会报错
- const和let一样不会与window相映射、支持块级作用域、在声明的上面访问变量会报错
2、使用箭头函数应注意什么
- 用了箭头函数,this就不是指向window,而是父级(指向是可变的)
- 不能够使用arguments对象
- 不能用作构造函数,这就是说不能够使用new命令,否则会抛出一个错误
- 不可以使用yield命令,因此箭头函数不能用作 Generator 函数
3、介绍下 Set、Map的区别
Set
- 成员不能重复
- 只有键值没有键名,类似数组
- 可以遍历,方法有add, delete,has
Map
- 本质上是健值对的集合,类似集合
- 可以遍历,可以跟各种数据格式转换
4、Promise构造函数是同步执行还是异步执行,then 方法呢
promise构造函数是同步执行的,then方法是异步执行的
5、下面的输出结果是多少,为什么
const promise = new Promise((resolve, reject) => {
console.log(1);
resolve();
console