使用let替换var实现块级作用域的小发现

发布时间:2019-08-20 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了使用let替换var实现块级作用域的小发现脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

在讲述javascript没有块级作用域的时候都会提到一个非常经典的例子:

@H_777_11@var obj={ name:'helo', age:15 }; var arr=[]; for(var i=0;i<5;i++){ arr[i]=i; console.LOG(i); } console.log(arr); console.log(i);

因为javascript没有块级作用域,所以控制台打印出来的结果是:

使用let替换var实现块级作用域的小发现

具体什么原因这里不再赘述,有兴趣的可以去参考《javascript高级程序设计

后来在es6上出现了一个可以定义块级块级作用域的声明let.不过由于当前浏览器对es6的支持不好,所以需要用 babel来实现es6到es5的转换。难道es6用了什么黑科技实现了块级作用域吗?转换后的结果就比较有趣了。

'use strict';

var obj = {
    name: 'helo',
    age: 15
};
var arr = [];
for (var _i = 0; _i < 5; _i++) {
    arr[_i] = _i;
    console.log(_i);
}
console.log(arr);
console.log(i);

这个结果也是醉了,现在你发现了并没有什么黑科技,只是在for里面的i变量前加了一个下划线,而console.log()里面的i却没变,怪不得打印出来的i是undefine。

使用let替换var实现块级作用域的小发现

脚本宝典总结

以上是脚本宝典为你收集整理的使用let替换var实现块级作用域的小发现全部内容,希望文章能够帮你解决使用let替换var实现块级作用域的小发现所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。