let与var的区别,为什么什么要用let? - Go语言中文社区

let与var的区别,为什么什么要用let?


1.var是全局声明,let是块级作用的,只适用于当前代码块

var a = 1if(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 =2if(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;//报错

}

 

  

 

 

版权声明:本文来源博客园,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.cnblogs.com/leileilei/p/10529994.html
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-11-17 14:45:18
  • 阅读 ( 2096 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

推荐文章

猜你喜欢