let :
1.变量 不能重复生命
2.块级作用域(代码块(if,while 等等)里面) 全局 ,函数,eval
3.不存在变量提升
4.不影响作用域链
作用域是变量的可作用范围,变量只有在自己的作用域下才会生效。
函数会产生作用域,在函数内定义的变量只能在函数内使用。
什么是作用域链
1) 函数会限制变量的作用域范围,而函数内是可以再嵌套函数的,函数的层层嵌套,就形成了一个作用域链。
2)作用域链描述的是程序在执行过程当中寻找变量的过程。
② 作用域链寻找变量的过程
当函数内使用某个变量的时候,会按照如下过程找到该变量:
1) 先从自身所在作用域去查找,如果没有再从上级作用域当中去查找,直到找到全局作用域当中。
2)如果其中有找到,就不会再往上查找,直接使用。
3)如果都没有找到,那么就会报引用错误提示变量没有定义。
const 是常量 不能修改值 必须有初始值 一般要大写 块级作用域
对于 数组和对象的元素修改是没问题的
${}代替"+"
执行完成后会释放
var function 都会变量提升