序文これは JavaScript の非常に基本的な知識ポイントであるはずですが、多くの友人は面接中に簡単に触れただけで、それについて何も知らないようです。ここでは、以前のメモと合わせて、プリミティブ値と参照値の関連知識を簡単に紹介します。それでは始めましょう。 ECMAScript では、変数にはプリミティブ値または参照値の 2 つのデータ型を含めることができると規定されています。プリミティブ値は最も単純なデータ構造ですが、参照値は複数の値で構成されるオブジェクトです。 プリミティブ値は、Undefined、Null、Boolean、Number、String、Symbol の計 6 種類あります。プリミティブ値を操作するということは、格納変数内の実際の値を操作することを意味します。 参照値は、メモリに格納されているオブジェクトです。JavaScript はメモリ位置に直接アクセスできないため、オブジェクトが配置されているメモリ空間を直接操作することはできません。オブジェクトを操作する場合、実際にはオブジェクト自体ではなく、オブジェクトの参照を操作しています。 動的プロパティとは何ですか?動的プロパティとは、参照値が作成された後、そのプロパティとメソッドを動的に追加、変更、削除できることを意味します。例: obj = new Object(); obj.name = "サム"; console.log(obj.name); // "サム" 説明: まず、参照値オブジェクトが作成され、変数 obj に格納されます。次に、名前属性が値 "Sam" で obj に割り当てられます。このプロパティが変更/削除されない限り、このプロパティを直接印刷したりアクセスしたりできます。 プリミティブ値には属性を持たせることはできませんが、属性操作を実行してもエラーは報告されません。例: let me = "Sam"; me.sex = "男性"; console.log(me.sex); // 未定義 ここではリテラル初期化が使用されているため、性別属性が私に割り当てられても無意味であり、属性にアクセスすることはできません。 let me = new String("Sam"); me.sex = "男性"; console.log(me.sex); // "男性" 値のコピープリミティブ値と参照値は、変数を介してコピーされる場合にも異なります。プリミティブ値は新しい変数にコピーされますが、参照値は実際には値へのポインタをコピーします。例: 名前を "Sam" にします。 myName = 名前とします。 console.log(myName); // "サム" myName が name に初期化されると、「Sam」も myName にコピーされますが、これは name とは独立しており、互いに干渉しません。myName は name のコピーであると理解できます。 参照値のコピーは、実際にはヒープ メモリ内のオブジェクトを指すポインターをコピーします。コピーされた変数に対する属性操作は、実際にはコピーされたオブジェクトに対する操作です。2 つの変数は実際には同じオブジェクトを参照します。例: let me = new Object(); あなた=私になります。 me.name = "サム"; console.log(you.name); // "サム" 値の種類を決定する変数の型を決定するために typeof をよく使用します。これはプリミティブ値の型を決定するのに便利ですが、参照値と null の場合、typeof はオブジェクトを返すため、参照値を決定するのにはあまり役立ちません。 通常、これがどのようなタイプのオブジェクトであるかを正確に知る必要があるため、instanceof 演算子を使用します。構文は次のとおりです。 結果 = 変数インスタンスコンストラクタ instanceof はブール値を返します。例: console.log(person オブジェクトのインスタンス); // 変数 person はオブジェクトですか? console.log(色のインスタンス配列); // 変数 colors は配列ですか? console.log(パターンインスタンスRegExp); // 変数パターンは正規表現ですか? プリミティブ値に対して instanceof を使用すると、プリミティブ値はオブジェクトではないため、常に false が返されます。 要約するECMAScript におけるオリジナル値と参照値についての記事はこれで終了です。ECMAScript におけるオリジナル値と参照値についてさらに詳しく知りたい方は、123WORDPRESS.COM の過去記事を検索するか、引き続き以下の関連記事を閲覧してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 |
>>: MySQLデータベースのbinlogクリーンアップコマンドの詳細な説明
MySQL 5.7.17 のインストールと設定方法の概要最初のステップは、MySQL公式サイトから...
目次1. 鏡を見つける2. RabbitMQイメージをダウンロードする3. RabbitMQコンテナ...
序文常にエラーが発生するため、MySQL データベースに接続するプロセスを記録します。接続プロセス1...
提案: コードをできるだけ手書きすると、学習の効率と深さを効果的に向上できます。デフォルトでは、&l...
1. transform 属性を使用して、画像を拡大せずに表示します (パスの問題は必要に応じて修正...
1. はじめにこの記事では、Docker を使用して Redis を探索する方法を説明します。 Do...
タイトル通りです。その質問は非常に奇妙です。要素の親タグはdivで、幅や高さなどの属性は設定されてい...
この種のエラーに対処するための 1 つの方法は、まずマークアップとスタイルシートを検証することです。...
誰もが色にとても敏感だと思います。私たちの目が見るところにはどこにでも色があります。では、CSS で...
エラーは次のとおりです:キャッチされない TypeError: 未定義のプロパティ 'mod...
3次元縦棒グラフは、正面、右側、上部の3つの部分で構成されています。描画するときは、正面をグラフィッ...
CSS インポート方法 - インラインスタイルタグ属性を通じて、CSSのキーと値のペアがタグに直接書...
1. 複数の国境[1]背景: ボックスシャドウ、アウトライン使用シナリオの多様性を考慮すると、複数の...
目次G2チャートについて使用テンプレートで使用される完全なコード (棒グラフ)世界地図を追加するG2...
最近、イントラネットポータルを修正していたときに、フィルターを使用する必要がある箇所に遭遇しました。...