ES2015(ES6) 新增加了两个重要的 JavaScript 关键字: let 和 const。
let 声明的变量只在 let 命令所在的代码块内有效。
const 声明一个只读的常量,一旦声明,常量的值就不能改变。
ES5中var 命令一些问题
1.变量提升
console.log(a);
// 全局变量没有定义a时
// 报错 ReferenceError: a is not defined
console.log(a);
var a = 2;
//undefined
// 当定义了 a变量时,返回的是undefined
2.var定义的变量,可以覆盖
var b = 3; var b = 4;
console.log(b);
// 4
ES6中let 命令
1.不能重复声明变量 let a = 1; let a = 3; console.log(a); //// Identifier 'a' has already been declared 2.块级作用域 if(1===1){ let b = 10; console.log(b) //10 } console.log(b) // ReferenceError: b is not defined
ES6中const 命令
1.const 声明一个只读变量,声明之后不允许改变。 const PI = "3.1415926"; console.log(PI) //3.1415926
const PI = "6";
console.log(PI)
// Identifier 'a' has already been declared
注意要点:
const 变量指向的是内存地址,所保存的数据不允许改动,如果const定义的是可变数据类型,那么
他是可变的