专栏名称: 前端大全
分享 Web 前端相关的技术文章、工具资源、精选课程、热点资讯
目录
相关文章推荐
前端早读课  ·  【早阅】寻求拒绝,而不是寻求肯定的答复 ·  11 小时前  
得物技术  ·  LSM-TREE从入门到入魔:从零开始实现一 ... ·  昨天  
得物技术  ·  LSM-TREE从入门到入魔:从零开始实现一 ... ·  昨天  
前端早读课  ·  【第3465期】转向纯 ... ·  昨天  
国家林业和草原局  ·  大熊猫短视频展播 | 《“圆梦”:圆我们共同梦》 ·  2 天前  
国家林业和草原局  ·  大熊猫短视频展播 | 《“圆梦”:圆我们共同梦》 ·  2 天前  
湾区财经传媒  ·  小米SU7Ultra、15Ultra,深圳小 ... ·  3 天前  
湾区财经传媒  ·  小米SU7Ultra、15Ultra,深圳小 ... ·  3 天前  
51好读  ›  专栏  ›  前端大全

轻松学习 JavaScript(1):了解 let 语句

前端大全  · 公众号  · 前端  · 2017-11-13 20:06

正文

(点击 上方公众号 ,可快速关注)

英文: Dhananjay Kumar   译文:码农网/小峰

www.codeceo.com/article/easy-javascript-01-let.html

如果好文章投稿,点击 → 了解详情


使用let语句,允许你在JavaScript中创建块范围局部变量。let语句是在JavaScript的ECMAScript 6标准中引入的。在你往下了解let语句之前,我建议你先查看基于Infragistics jQuery库的Ignite UI,它可以帮助你更快地编写和运行Web应用程序。你可以使用JavaScript库的Ignite UI来快速解决HTML5,jQuery,Angular,React或ASP.NET MVC中复杂的LOB需求。(你可以在这里下载Ignite UI的免费试用版。)


在ECMAScript 6之前,JavaScript有三种类型的范围:


  • 全局范围

  • 函数范围

  • 词汇范围


为了详细探索let语句,请细想下面的代码段:


function foo () {

var x = 9 ;

if ( x > 5 ) {

var x = 7 ;

console . log ( "Value of x in if statement = " + x );

}

console . log ( "Value of x outside if statement = " + x );

}

foo ();


以上代码得到的输出:



在上面的代码中,我们使用var语句声明变量x。因此,变量x的范围是函数范围。if语句内的变量x 就是if语句外创建的变量x 。因此,在你修改if语句块内变量x的值时,也会修改函数中变量x的所有引用的值。


为了避免这种情况,你需要使用块级别范围,let语句允许你创建块范围的局部变量。


修改上面的代码片段,使用let语句声明变量:


function foo () {

var x = 9 ;

if ( x > 5 ) {

let x = 7 ;

console . log ( "Value of x in if statement = " + x );

}

console . log ( "Value of x outside if statement = " + x );

}

foo ();


在上面的代码段中,我们使用let语句来声明范围级局部变量x。因此,在if语句内更新变量x的值不会影响if语句外的变量x的值。


下面是上述代码的输出:



与使用函数范围(或全局范围)声明的变量不同,使用let声明的变量是块范围的:它们只存在于它们定义的块中。


变量提升


使用let声明的变量提升不同于使用var声明的变量。因此,使用let声明的变量没有变量提升,这意味着使用let声明的变量不会移动到执行上下文的顶部。


为了更好地理解这一点,请看以下这段代码:


function foo () {

console . log ( x );

console . log ( y );

var x = 9 ;

let y







请到「今天看啥」查看全文