letとvar定義変数の違い

1448 ワード

一、letはjsでは使えません.es 6の文法です.jsで使うなら、厳格なモードを使わなければなりません.
二、声明の後に価値がなく、表現は同じである.
  var varTest;
  let letTest;
  console.log(varTest); //  undefined
  console.log(letTest); //  undefined
つまり声明の後、直接に出力を使うのは同じundefinedです.
三、未宣言の変数を使うと、異なる
 console.log(varTest); //  undefined(              )
  console.log(letTest); //    :ReferenceError: letTest is not defined
宣言されていない変数を直接使用して、letは直接エラーを報告します.varのヒントは定義されていません.undefined
四、同じ変数を繰り返し宣言する場合、異なる
 var varTest = 'test var OK.';
  let letTest = 'test let OK.';

  var varTest = 'varTest changed.';
  let letTest = 'letTest changed.'; //    :SyntaxError: Identifier 'letTest' has already been declared

  console.log(varTest); //  varTest changed.(        letTest           )
  console.log(letTest);
varは声明を繰り返し、第二の声明は第一の声明の値をカバーします.
let繰り返し宣言はエラーとなります.
五、変数のスコープが違います.
{
  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宣言の変数は2つの異なる変数であり、互いに影響がない.
varの声明はグローバル変数です.