项目中已经频繁使用let了,面试中也会有同样的问题,接下来看下let和var的区别吧:
{
var a = 1;
let b = 2;
}
console.log('var:', a); // 1
console.log('let:', b); // b is not defined
在这里插入图片描述
由此得出:let只在所声明的区域块内有效,平时在for循环中用处还是很大的
for (var i = 0; i < 5; i++) {
}
console.log(i); // 5
在这里插入图片描述
为什么会得5呢?由于var声明的变量是全局变量,在循环体外也可以被访问,这时循环体外的i已经得5了,结果如图
注意:当索引超过5时,会报错
一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一
接下来看下let
for (let j = 0; j < 5; j++) {
}
console.log(j); // j is not defined
在这里插入图片描述
let声明的变量只在本轮循环有效,循环体外是不可以访问该变量的。
号外:let声明的变量不能在声明之前调用,而var声明的变量可以使用,所以开发中尽量用let养成良好的习惯
console.log(a); //undefined
var a;
console.log(b); //b is not defined
let b;
多多学习~活到老学到老!
网友评论