1.const 常量的值不能通过重新赋值来改变,并且不能重新声明。
const number = 2;//正确
之后若尝试改变number是不可以行的。
try {
number = 3;
} catch(err) {
console.log(err);
// expected output: TypeError: invalid assignment to const `number'
// Note - error messages will vary depending on browser
}
console.log(number);
// expected output: 2
最后的结果会是
TypeError: Assignment to constant variable.
42
2.var 变量声明,可以修改,如果不初始化会输出undefined,不会报错。
var a = 0, b = 0;//初始化声明两个变量。
注意:var a = b = 0;//这里输出a和b和上方是一样的,但是如果在局部声明时,b将变成全局变量。
例如:
function test(){
var a = b = 0;
}
test();
console.log(a);//a is not defined
console.log(b);//输出0
3.let 语句声明一个块级作用域的变量,函数内部使用let定义后,对函数外部无影响。
使用var声明:
function varTest() {
var x = 1;
if (true) {
var x = 2; // 同样的变量!
console.log(x); // 2
}
console.log(x); // 2
}
使用let声明:
function letTest() {
let x = 1;
if (true) {
let x = 2; // 不同的变量
console.log(x); // 2
}
console.log(x); // 1
}