js中let和var定義變量的區別


以下轉自:http://blog.csdn.net/nfer_zhuang/article/details/48781671

聲明后未賦值,表現相同

復制代碼
(function() {
      var varTest;
      let letTest;
      console.log(varTest); //輸出undefined
      console.log(letTest); //輸出undefined
    }());
復制代碼

使用未聲明的變量,表現不同:

復制代碼
(function() {
  console.log(varTest); //輸出undefined(注意要注釋掉下面一行才能運行)
  console.log(letTest); //直接報錯:ReferenceError: letTest is not defined

  var varTest = 'test var OK.';
  let letTest = 'test let OK.';
}());
復制代碼

重復聲明同一個變量時,表現不同:

按 Ctrl+C 復制代碼
按 Ctrl+C 復制代碼

變量作用范圍,表現不同:

復制代碼
(function() {
  var varTest = 'test var OK.';
  let letTest = 'test let OK.';

  {
    var varTest = 'varTest changed.';
    let letTest = 'letTest changed.';
  }

  console.log(varTest); //輸出"varTest changed.",內部"{}"中聲明的varTest變量覆蓋外部的letTest聲明
  console.log(letTest); //輸出"test let OK.",內部"{}"中聲明的letTest和外部的letTest不是同一個變量
}());
復制代碼

備注:

使用 let 語句聲明一個變量,該變量的范圍限於聲明它的塊中。  可以在聲明變量時為變量賦值,也可以稍后在腳本中給變量賦值。  

使用 let 聲明的變量,在聲明前無法使用,否則將會導致錯誤。

如果未在 let 語句中初始化您的變量,則將自動為其分配 JavaScript 值 undefined


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM