let和const都是用来申明变量的,关注点如下:
1.let申明的变量,只在let所在的代码块内有效
2.var申明变量的时候会有变量提升,变量可以在申明之前使用,值为undefined。let和const申明的变量不存在变量提升
3.let不允许在同一个作用域内重复申明同一个变量
4.let和const为JS新增了块级作用域,块级作用域需要用大括号括起来
5.const申明的变量为静态变量,变量指向的内存地址保存的数据不允许发生改变,并且申明变量的时候就要给变量赋值
6.var命令和function命令声明的全局变量,依旧是顶层对象(浏览器下是window)的属性;另一方面,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性