let 与 var区别 变量提升:所有变量的声明语句都会被提升到代码头部,这就是变量提升。 暂时性死区:只要块级作用域内存在let命令,它所声明的变量就“绑定”(binding)这个区域,不再受外部的影响。 var:1.函数作用域,不管声明在哪个代码块中,整个函数中都能随意使用 2.存在变量提升,所有Var声明的变量会提升到作用域开头声明 3.可重复定义 let:1.块级作用域,作用域仅在当前代码块中 2.不存在变量提升,let语句声明的变量仅在当前语句块中 3.有暂时性死区 4.无法重复定义