Javascript ES6 let 和 var 比較

文章源地址:http://blog.csdn.net/lcstrive/article/details/43149167


          JavaScript ES6 的 let 和 var 的比較

    在JavaScript 1.7中, let 關鍵詞被添加進來, 我聽說它聲明之後類似於”本地變量“, 但是我仍然不確定它和 關鍵詞 var 的具體區別。

    回答:

    不同點在於作用域, var關鍵詞的作用域是最近的函數作用域(如果在函數體的外部就是全局作用域), let 關鍵詞的作用域是最接近的塊作用域(如果在任何塊意外就是全局作用域),這將會比函數作用域更小。

    同樣, 像var 一樣, 使用let 聲明的變量也會在其被聲明的地方之前可見。 


下面是Demo 例子。

全局(Global)

當在函數體之外它們是平等的。

[javascript] view plain copy
  1. let me = 'go'//globally scoped  
  2. var i = 'able'//globally scoped  

函數(Function)

當瞎下面這種, 也是平等的。 

[javascript] view plain copy
  1. function ingWithinEstablishedParameters() {  
  2.     let terOfRecommendation = 'awesome worker!'//function block scoped  
  3.     var sityCheerleading = 'go!'//function block scoped  
  4. };  

塊(Block)

這是不同點, let 只是在 for 循環中, var  卻是在整個函數都是可見的。 

[javascript] view plain copy
  1. function allyIlliterate() {  
  2.     //tuce is *not* visible out here  
  3.   
  4.     for( let tuce = 0; tuce < 5; tuce++ ) {  
  5.         //tuce is only visible in here (and in the for() parentheses)  
  6.     };  
  7.   
  8.     //tuce is *not* visible out here  
  9. };  
  10.   
  11. function byE40() {  
  12.     //nish *is* visible out here  
  13.   
  14.     forvar nish = 0; nish < 5; nish++ ) {  
  15.         //nish is visible to the whole function  
  16.     };  
  17.   
  18.     //nish *is* visible out here  
  19. };  

外文文章出處: Javascript - “let” keyword vs “var” keyword


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章