es6之前,js中只有一个声明变量的关键字 var 。
es6之后,新增了let 和 cons两个关键字。
1、Let(1)、let 是在代码块内有效,var 是在全局范围内有效。很适合for循环中的i变量。
{ let a = 0; var b = 1; } a // ReferenceError: a is not defined b // 1
(2)、不能重复声明,let声明的变量不可以重复声明,var可以。for循环可以使用let i。
(3)、let 不存在变量提升,var 会变量提升。也就是如果先使用了a,后let声明a,会报错,与未声明一样。使用未先声明的b,后通过var声明,不会报错,会显示undefined。
2、Constconst 声明一个只读变量,声明之后不允许改变。意味着,一旦声明必须初始化,否则会报错。
console.log(a); //ReferenceError: a is not defined let a = "apple"; console.log(b); //undefined var b = "banana";