JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

JavaScriptのconstで定義された変数は変更できるのか?徹底解説

JavaScriptでは、constキーワードを使って定義された変数は、再代入することができません。つまり、一度値を代入した後は、同じ変数に別の値を割り当てることはできません。

ただし、オブジェクトをconstで定義した場合でも、そのオブジェクトのコピーを作成して変更を加えれば、元のオブジェクトは影響を受けず、初期値のまま保たれます。

以下は、constで定義した変数の例です。

const details1 = {
    firstName: 'David',
    subjectDetails: { subjectName: 'JavaScript' }
}

コード例

次のコードでは、スプレッド構文(...)を使ってdetails1のコピーであるdetails2を作成し、details2のプロパティを変更しています。しかし、元のdetails1は変更されず、初期値のまま表示されます。

const details1 = {
    firstName: 'David',
    subjectDetails: { subjectName: 'JavaScript' }
}
const details2 = { ...details1, subjectDetails: { ...details1.subjectDetails }, firstName: 'David' }
details2.subjectDetails.subjectName = 'Java '
console.log(details1);

上記のプログラムを実行するには、次のコマンドを使用します。

node fileName.js

ここでは、ファイル名をdemo225.jsとしています。

実行結果

出力は以下のとおりです。

PS C:\Users\Amit\JavaScript-code> node demo225.js
{ firstName: 'David', subjectDetails: { subjectName: 'JavaScript' } }

このように、コピー先のdetails2subjectNameを「Java」に変更しても、元のdetails1の値は「JavaScript」のまま変わりません。constで定義された変数への再代入はできないため、この性質を利用することで、元のデータを保護しながら安全に操作を行うことができます。

  1. JavaScriptでオブジェクトに特定のプロパティが存在するか確認する方法

    JavaScriptでオブジェクトのプロパティ存在を確認する方法 JavaScriptでは、オブジェクトに特定のプロパティが存在するかどうかを確認したい場面がよくあります。最も基本的な方法は、すべてのオブジェクトが持つhasOwnProperty()メソッドを使用することです。このメソッドは、指定したプロパティがオブジェクト自身に直接定義されている場合にtrueを返し、存在しない場合にはfalseを返します。 hasOwnProperty()メソッドの構文 object.hasOwnProperty(propertyName) propertyName: 存在を確認したいプロパティ名(文字列

  2. JavaScriptの変数がロード済みかどうかを確認する方法をわかりやすく解説

    JavaScriptで変数がロード済み(値が代入済み)かどうかを確認するには、その変数が undefined または null であるかを比較することで判定できます。さらに、typeof 演算子は常に文字列を返すという特性があるため、これを利用して変数の状態をチェックすることも可能です。 それでは、実際にJavaScriptの変数がロードされているかどうかを確認できるサンプルコードを見ていきましょう。 コード例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U