let 与var const的区别
let不存在变量提升
变量提升(原生js的语法):在最上面定义变量,但是没有赋值
相同的变量名不允许重复声明
块级作用域(ES5内只有全局作用域 函数作用域)
暂时性死区(也叫临时失效区),let声明的变量在当前函数内不允许同名的变量进来
const:声明一个只读的变量,一旦声明,常量的值就不能改变。
const实际上保证的,并不只是表面上的变量的值不得改动,而是变量指向的那个内存不能改动。拓展:有个叫Object.freeze()的方法可以把这个函数冻结
箭头函数(主要需掌握this指向问题)
箭头函数=>定义匿名函数(声明时的this),普通函数指的是调用时候的this
箭头函数this指向父作用域的this
函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象。
不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误。