一.let与const
let、const与var的区别
1.首先的一点,也是最重要的,let与const是块级作用域,而var是函数作用域。
详解: 你在一个大括号中定义了let 与 const{},在函数外是无法访问的,而var 只有定义在函数里面,外部才无法访问。
2. let与const没有变量提示,意味着,你无法在声明他们之前去使用他们。
详解:
var : 在js中,如果你用var声明了一个变量,在js执行时会自动把所有的变量都提升到全局作用域的顶部,你是可以在声明它之前去使用它的(虽然值为undefined),只有当代码执行到这一行时,才会去给var声明的变量去赋值。
let: 如果你在js中声明了let与const,必须在声明let与const的代码之后,才能去使用它们,否则就会抛出异常,这一特征,使得最安全的操作符 typeof 也会抛出错误了。
3 let 不可以重复去声明
4 let 与 const 会重写window中的属性
我们知道,我们所有可以直接使用的变量与方法,都是window的属性,而如果在全局作用域中去使用var声明一个window中有的属性的话,就会覆盖它。而如果使用let在全局作用域中去声明一个window中已有的变量,不会将改变量覆盖而仅仅是屏蔽它们,如果使用window.该属性,还是可以去得到window原本的属性。
let与const的区别
简单来说,let是变量,const是常量,而且在声明const时必须要为const去赋值
在前端中,能用const就尽量不要使用let,因为不在预期之中的改变,往往会发生错误