let与var的区别,为什么要用let?
1.var是全局声明,let是块级作用的,只适用于当前代码块
var a = 1;
if(true){
let a;
a=22;
console.log(a);'//22
} if(){}内就是let作用于的块
2.var变量会发生变量提升,let则不会进行变量提升
console.log(a)
var a=2;
console.log(a) 结果为underfined如果是 let a =2 则会提示报错
3.var 会造成重复赋值,循环里的赋值可能会造成变量泄露至全局
4.let在一个块级作用只能赋一次值,并进行当前代码块的锁区,就是说当前块只有let声明的这个变量是有用的
var a =2;
if(true){
a=3;//这个值会赋值失败,因为let造成了if{}这块代码的锁区
let a;
}5.let在一个块级内,只能声明一个一个相同的变量名
var a =2;
if(true) {
var a=1;//a=1
let a=1;
let a=2;//报错
}本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!