ES6 let and const

1. let  用来声明变量,只在命令所在的代码块内有效

2. 在for循环中这个提现的很完美

出来的是5

打印出来的是20

这就更好的说明了块的作用域

3.let不存在变量提升,这个很重要,一旦要用某个变量,一定要先定义再使用,否报错ReferenceError

4.暂时性死区  只要块级作用域内存在let命令,它所做的变量就绑定在这个区域,不受外部影响

5.有些死区不容易发现

6.let x=x;这也是会报错的,因为变量还没有声明完成前使用,所以会报错的!

7.let不允许在相同的作用域内,重复声明同一个变量

 

8.内层变量可能覆盖外层变量

9.泄漏成全局变量

10.let实际为javascript增加了块级作用域

11.允许块级作用域的任意嵌套,

外层作用域无法读取内层作用域的变量,

内层作用域可以定义外层作用域一样的变量名

12.const

声明一个只读的常量,一旦声明,常量的值就不能变化

const一旦声明,就必须立即初始化,不能留到以后赋值,作用域和let一样,块级

  

原文地址:https://www.cnblogs.com/zlzhang0305/p/8550238.html