letとvar定義変数の違い
1448 ワード
一、letはjsでは使えません.es 6の文法です.jsで使うなら、厳格なモードを使わなければなりません.
二、声明の後に価値がなく、表現は同じである.
三、未宣言の変数を使うと、異なる
四、同じ変数を繰り返し宣言する場合、異なる
let繰り返し宣言はエラーとなります.
五、変数のスコープが違います.
varの声明はグローバル変数です.
二、声明の後に価値がなく、表現は同じである.
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の声明はグローバル変数です.