js では、const キーワードを使用して定数を宣言でき、構文形式は「const name=value;」です。 const 宣言は値への読み取り専用の参照を作成しますが、これは保持する値が不変であることを意味するのではなく、変数識別子を再割り当てできないことを意味します。
このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。
const、定数の宣言に使用されます。
注: 変数を定義するときは、同時に初期化する必要があり、後でその値を変更することはできません。
const number = 42; try { number = 99; } catch (err) { console.log(err); // expected output: TypeError: invalid assignment to const `number' // Note - error messages will vary depending on browser } console.log(number); // expected output: 42
結果:
> TypeError: Assignment to constant variable. > 42
構文
const name1 = value1 [, name2 = value2 [, ... [, nameN = valueN]]];
nameN 定数名。任意の有効な識別子を指定できます。 valueN は定数値であり、任意の正当な式を使用できます。
説明
この宣言は、スコープが宣言されたブロックに対してグローバルまたはローカルになる定数を作成します。 var 変数とは異なり、グローバル定数は window オブジェクトのプロパティにはなりません。定数の初期化子は必須です。つまり、宣言と同じステートメントでその値を指定する必要があります (後で変更できないため、これは当然のことです)。
const 宣言は、値への読み取り専用の参照を作成します。ただし、それは保持する値が不変であるという意味ではなく、変数識別子を再割り当てできないというだけです。たとえば、参照されるコンテンツがオブジェクトである場合、これは、オブジェクトのコンテンツ (たとえば、そのパラメータ) を変更できることを意味します。
「一時的なデッドゾーン」に関する議論はすべて let と const に当てはまります。
定数は、そのスコープ内の他の変数または関数と同じ名前を持つことはできません。
例
const 基本的な使用法
定数は大文字または小文字で宣言できますが、通常はすべて大文字が使用されます。
// 定义常量MY_FAV并赋值7 const MY_FAV = 7; // 报错 - Uncaught TypeError: Assignment to constant variable. MY_FAV = 20; // MY_FAV is 7 console.log('my favorite number is: ' + MY_FAV); // 尝试重新声明会报错 // Uncaught SyntaxError: Identifier 'MY_FAV' has already been declared const MY_FAV = 20; // MY_FAV 保留给上面的常量,这个操作会失败 var MY_FAV = 20; // 也会报错 let MY_FAV = 20;
ブロック スコープ
ブロック スコープの性質に注意することが重要です
if (MY_FAV === 7) { // 没问题,并且创建了一个块作用域变量 MY_FAV // (works equally well with let to declare a block scoped non const variable) let MY_FAV = 20; // MY_FAV 现在为 20 console.log('my favorite number is ' + MY_FAV); // 这被提升到全局上下文并引发错误 var MY_FAV = 20; } // MY_FAV 依旧为7 console.log('my favorite number is ' + MY_FAV);
定数には初期値が必要です
// 报错 // Uncaught SyntaxError: Missing initializer in const declaration const FOO;
定数は次のように定義できます。オブジェクトと配列
const MY_OBJECT = {'key': 'value'}; // 重写对象和上面一样会失败 // Uncaught TypeError: Assignment to constant variable. MY_OBJECT = {'OTHER_KEY': 'value'}; // 对象属性并不在保护的范围内 // 下面这个声明会成功执行 MY_OBJECT.key = 'otherValue'; // Use Object.freeze() to make object immutable // 也可以用来定义数组 const MY_ARRAY = []; // 可以向数组填充数据 MY_ARRAY.push('A'); // ["A"] // 但是,将一个新数组赋给变量会引发错误 // Uncaught TypeError: Assignment to constant variable. MY_ARRAY = ['B'];
[推奨学習: JavaScript 上級チュートリアル ]
以上がJavaScriptで定数を宣言する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。