const关键字
const变量行为与let变量基本一致,唯一区别在于声明时必须初始化,且之后不能修改
const age = 26;
age = 16;//TypeError:给常量赋值
const变量也不允许重复声明
const name = ‘Matt‘;
const name = ‘Nicholas‘;//SyntaxError
const变量作用域也是块
const name = ‘Matt‘;
if(true){
const name = ‘Nicholas‘;
}
console.log(name);//Matt
块中如果声明了同名变量,就不会引入上层块中定义的变量,在声明之前使用会报错
const name = ‘Matt‘;
if(true){
console.log(name);//ReferenceError:name没有定义,这里不会认为是引入之前定义的变量,因为在本块后面定义了同名变量
const name = ‘Nicholas‘;
}
console.log(name);
const声明的限制只适用于它指向变量的引用,即:如果const变量指向一个对象,那么修改这个对象的属性并不违反const限制
const person = {};
person.name = ‘Nicholas‘;
在for循环中,不能用const声明迭代变量,因为迭代变量要自增
for(const i = 0; i < 10; ++i)//TypeError:给常量赋值
用const在循环中声明一个常量是可以的,每次迭代产生一个新的常量
let i = 0;
for(const j = 7; i < 5; ++i){
console.log(j);
}
//7, 7, 7, 7, 7
for(const key in {a:1, b:2}){
console.log(key);
}
//a, b
for(const value of [1,2,3,4,5]){
console.log(value);
}
//1, 2, 3, 4, 5
声明风格和最佳实践
1.不使用var
2.const优先,let次之
原文:https://www.cnblogs.com/songqt/p/14187438.html