ES 6の基礎知識
3947 ワード
一.letとcontslet宣言の変数は所在コードブロック内でのみ有効であり、複数回宣言不可 constは読み取り専用の定数を宣言し、宣言すると値は基本的な使い方を変えることができない: varグローバル変数を宣言し、グローバル範囲内で有効であり、複数回宣言可能 letは変数リフトが存在せず、varは変数リフトが存在する
function demo{
let a = 1;
console.log(a); ///1
}
console.log(a); // ReferenceError: a is not defined
let a = 1;
let a = 1;
a //Identifier 'a' is already been declared
const a = 1;
a //1
const b; // SyntaxError: Missing initializer in const declaration
一時的なデッドゾーン:var a = 1;
if(true) {
console.log(a); // ReferenceError: a is not defined
const a = 2;
}
ES 6は、コードブロック内にletまたはconstが存在する場合、コードブロックはこれらのコマンド宣言の変数に対してブロックの開始から閉鎖的な役割ドメインを形成することを明確に規定している.コードブロック内では、変数aを宣言する前に使用するとエラーが表示されます.console.log(a); //ReferenceError: a is not defined
let a = 1;
console.log(b); //undefined
var b = 1;
変数bはvarで変数リフトが存在することを宣言しているので、スクリプトが実行されるとbは既に存在するが、まだ値が付与されていないためundefinedが出力される.変数aはletで変数リフトが存在しないことを宣言し、変数aを宣言する前にaは存在しないので、エラーが発生します.