2.let和const
2022年9月29日小于 1 分钟
2.let和const
变量提升
var
命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined
。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。
为了纠正这种现象,let
命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。
// var 的情况
console.log(foo); // 输出undefined
var foo = 2;
// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;
Const
const
声明一个只读的常量。一旦声明,常量的值就不能改变。
const PI = 3.1415;
PI // 3.1415
PI = 3;
// TypeError: Assignment to constant variable.
参考 http://es6.ruanyifeng.com/\#docs/let
// let const 块级作用域 不能重复声明 不再提升变量
function test() {
// for(let i=1;i<3;i++){
// console.log(i);
// }
// console.log(i);
let a = 1;
// let a = 2;
}
function last() {
// const声明值类型 不可修改
const PI = 3.1415926;
//引用类型 可以修改
const k = {
a: 1
}
k.b = 3;
console.log(PI, k);
}
// test();
last();
//使用let 不能重复声明同一变量
// let a = 1;
let a = 0;