学习es首先在就要接触的就是let和const这两种新的声明方法,let和const的出现大大的避免了变量污染的问题,因为在es6的语法中,let和const是局部作用域变量声明,应该说他们带来了局部作用域的概念,用let和const声明的变量只会在声明的作用域中起作用,切不可以重复声明,这样可以防止我们在声明变量的时候会造成全局变量污染,也会防止我们声明重复,导致一个变量充当了两个变量使用,也正是let和const只能声明一次,所以let 在for循环中很适用,再循环中变量如果是用 let 声明的,当前的变量只在本轮循环中有效,每次循环的变量其实都是一个新的变量,所以如果我们去打印变量的话会发现这个变量其实是不同的变量,即最后输出不同,因为每次循环的变量都是重新声明的, JavaScript 引擎内部会记住前一个循环的值,所以我们也就能知道前一个循环的值。并且let和const声明的变量不存在提升,而且这两个声明方法还存在着暂时死区,在es6出来之前我们用var来声明变量的时候会发生与解析即变量提升不复制,虽然没有值但是变量已经存在被定义了,但是const和let却不会,他们声明的变量不会提升,在你声明之前都不会被定义。
小总结虽然let和const及其的类似但是二者的区别还是很明显的
1. 首先是let声明的变量值可以改变,但是const声明的值不可以改变
2. const
声明的常量必须初始化,而let
声明的变量不用