- let 不能重复声明 var 可以
let immut = 1;
var mut = 2;
var mut = 4;
console.log(mut);//4
let immut = 2;
console.log(immut);//immut 以被声明过 不可重复
2.1const 只读常量
const a = 'hello world';
a = 'world';
console.log(a); //报错Assignment to constant variable
2.2const 声明对象可改变其属性
const person = {
name: 'cjl',
};
person.name = 'ljh';
console.log(person.name);//ljh
当遇到const对象时 const允许改变对象的属性 但变量本身的内存引用地址不可以修改
因此下面这种情况就会报错
person = {
name: 'xxx'
};
console.log(person.name); //Assignment to constant variable.
若用const声明一个对象 则只能改变其属性 而不能重新指定对象的引用
3let const作用域
若在一个代码块内定义let则在外部无法访问此let变量
function a() {
var glo = 'vara';
let common = 'la';
const read = 'ca';
console.log(common + read + glo);
}
function b() {
var glo = 'varb'
let common = 'lb';
const read = 'cb';
console.log(common + read + glo);
}
a();//lacavara
b();//lbcbvarb
与c语言一样 在不同函数内声明相同变量的作用域只在函数内
即在函数内部声明变量不会影响外部环境