ES6使用let命令更简单的实现块级作用域实例分析
本文实例讲述了ES6使用let命令更简单的实现块级作用域。分享给大家供大家参考,具体如下:
let 带来了更简单的块级作用域
1. ES6新增了let命令,用于声明变量。其与var的不同在于,用let声明的变量只在 { } 内有效。这使得我们可以很方便的实现块级作用域,不再使用立即实行函数。
{
let a=1;
var b=2;
}
console.log(a); //undefined
console.log(b); //2
在for循环中使用let可以有效避免全局变量污染。
2. let不会变量提升。也就是说,如果你使用var ,可以先使用变量再定义变量(注意:变量提升只提升声明不提升赋值操作),但是如果你使用let定义变量则必须先定义后使用,否则会报错。
console.log(a);//报错:Uncaught ReferenceError: a is not defined console.log(b); //undefined let a=1; var b=2;
3. 暂时性死区(Temporal Dead Zone)
只要块级作用域内有let,let 声明的变量不受全局同名变量的影响,如果想要在块级作用域内使用let 声明的变量,只能为其赋值。
var a=1;
if(true){
a=2;
let a; //Uncaught ReferenceError: a is not defined
}
4. 不允许在一个块级作用域内重复声明一个变量
不管是var与let重复声明,还是let与let重复声明,都会报错。
希望本文所述对大家ECMAScript程序设计有所帮助。
相关文章
兼容Firefox的Javascript XSLT 处理XML文件
这篇文章主要介绍了兼容Firefox的Javascript XSLT 处理XML文件,需要的朋友可以参考下2014-12-12
关于javascript中的promise的用法和注意事项(推荐)
这篇文章主要介绍了关于javascript中的promise的用法和注意事项,需要的朋友可以参考下2021-01-01
file-loader打包图片文件时路径错误输出为[object-module]的解决方法
这篇文章主要介绍了file-loader打包图片文件时路径错误输出为[object-module]的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-01-01


最新评论