let和var的区别

项目中已经频繁使用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;

多多学习~活到老学到老!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。