基本用法
{
let a=10;
var b=1; // 尽量避免使用var
}
let 与 var 相比, 优点:
-
不存在变量提升
// var console.log(a); // undefine var a=2 // let console.log(a); // error let a=2
由于var 存在变量提升,写法类似如下,经常会造成一些无法预料的bug
var a console.log(a) a=2
-
不允许重复声明
function fn(){ let a=10; var a=1; // 报错 } // 不能再函数内部重新声明参数 function fn(arg){ let arg // 报错 } function func(arg){ { let arg; // 不报错 } }
-
块级作用域
// 外层代码块不受内层代码块的影响 function fn(){ let n=5; if(true){ let n=10; } console.log(n) //5 }
const的优点
-
const声明的常亮是否可修改?
//值类型不可修改 const a=1; a=2 //报错 // 引用类型可以添加属性 const o= {}; o.a=1;
本质: const 实际上保证的不是变量的值不能改动, 而是变量指向的那个内存地址不得改动