ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の定数が不変の場合、どのように変更できますか?

JavaScript の定数が不変の場合、どのように変更できますか?

Susan Sarandon
リリース: 2024-11-30 01:04:12
オリジナル
417 人が閲覧しました

How Can JavaScript Constants Be Modified If They're Immutable?

JavaScript における定数オブジェクトの誤解

定数の不変性を強調する ES6 仕様を参照しているにもかかわらず、JavaScript は定数オブジェクトに対して一見矛盾したアクションを許可します。定数オブジェクトに別の値を割り当てると、値は変更されませんが、オブジェクト内の要素を追加または削除することは可能であるようです。

定数のセマンティクスについて

MDN ドキュメントによると、「定数は使用できません」 「再代入による変更」と「定数の再宣言はできません」。重要なのは、これは、オブジェクト自体ではなく、オブジェクトへの参照が一定であることを意味します。新しいオブジェクトを定数変数に割り当てることはできませんが、オブジェクトの内容を変更することはできます。

例: 配列の変更

次のコード スニペットを考えてみましょう:

const myArray = [];
myArray.push(1);
console.log(myArray); // Output: [1]
ログイン後にコピー

この場合、myArray 配列への参照は同じ配列オブジェクトを指しているため、変更されません。ただし、push() 操作は要素を配列に追加し、その内容を変更しますが、定数のセマンティクスには違反しません。

例: オブジェクトへのプロパティの追加

同様に、プロパティをオブジェクトに追加することもできます。参照を変更しない定数オブジェクト:

const myObject = {};
myObject.foo = 'bar';
console.log(myObject); // Output: {foo: "bar"}
ログイン後にコピー

Expectations vs現実

再割り当てと変更を区別することが重要です。再割り当てでは新しい参照が作成されますが、変更は同じオブジェクト参照に対して行われます。定数オブジェクトの場合、不変性を確保するために再代入は禁止されていますが、オブジェクトの内容の変更は依然として許可されています。

以上がJavaScript の定数が不変の場合、どのように変更できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート