JavaScript 上級プログラミング: 変数とスコープ

JavaScript 上級プログラミング: 変数とスコープ

1. 元の値と参照値

6 つの単純なデータ型の値はすべてプリミティブ値です。プリミティブ値が変数を介して別の変数に割り当てられると、新しい値がコピーされ、2 つは互いに独立しています。

num1 = 5とする
num2 = num1とする


参照値が変数を介して別の変数に割り当てられると、値もコピーされます。この値は実際にはポインター (参照) であり、ポインターは引き続き同じオブジェクトを指します。

obj1 = 新しいオブジェクト()

obj2 = obj1とする

これらは同じ参照オブジェクトを指しているため、 obj1にプロパティを追加すると、 obj2も影響します。

obj1.name = "張さん"

console.log(obj2.name) // 張さん


関数にパラメータを渡す場合、パラメータが値で渡される状況は 1 つだけあり、これは変数を割り当てる場合と同じです。ただし、参照値の場合、渡される値はポインターですが、ポインターは依然として同じオブジェクトを指します。

2. インスタンス

typeofは一般にプリミティブ値の判定には適していますが、 nullやその他のオブジェクトがオブジェクトを返し、オブジェクトの特定の型が不明であるため、参照値には適していません。 参照値がどのタイプのオブジェクトであるかを判断する最良の方法は、 instanceof式を使用することです。

console.log(1 インスタンスのオブジェクト) //false
obj = new Object();
console.log(obj インスタンスオブオブジェクト) //true
console.log(null インスタンスオブオブジェクト) //false



関数fun(){
    //
}
console.log(fun instanceof Object) //true
console.log(fun instanceof Function) //true

console.log([] インスタンスオブオブジェクト) //true
console.log([] 配列のインスタンス) //true

3. 範囲

変数のスコープは、スコープまたは実行コンテキストと呼ばれます。変数はスコープ外では見えなくなります。すべてのシステムには、変数を検索するときにスコープ チェーンがあります。まず、その変数を参照する最も近いブロック スコープで変数を検索します。見つからない場合は、外側のローカル スコープで検索を続けます。それでも見つからない場合は、グローバル スコープで検索します。見つからない場合は、エラーReferenceError: xxx is not defined報告されます。

高度な JavaScript プログラミングにおける変数とスコープに関するこの記事はこれで終わりです。JavaScript 変数とスコープの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JavaScriptの変数スコープについて学ぼう
  • JavaScript の変数スコープの詳細な説明
  • JavaScript での変数宣言をご存知ですか?
  • JavaScript における変数と関数の昇格の詳細な例
  • JavaScript でローカル変数をグローバル変数に変換する方法
  • JavaScript 変数と変換の詳細

<<:  Synology NAS は Docker コンテナを使用して KMS アクティベーション サーバーを構築し、Windows システムとオフィスをアクティベートします (操作手順)

>>:  テーブルタグ(TAGS)の詳細な紹介

推薦する

ローカルのMySQLをサーバーデータベースに移行する方法

Linux の scp コマンド (Windows では scp は使用できません) と、mysql...

MySQL 8.0.16 Win10 zip バージョンのインストールと設定のグラフィック チュートリアル

この記事では、MySQL 8.0.16 Win10 zip版のインストールと設定のグラフィックチュー...

nginx を使用して正規表現で指定された URL リクエストを傍受する方法

nginx サーバーnginx は、静的ファイルの処理に非常に効率的な優れた Web サーバーです。...

ウェブデザインのためのロイヤルブルーのカラーマッチング入門

古典的な色の組み合わせは力と権威を伝え、強いロイヤルブルーはあらゆる古典的な色の組み合わせの中心的な...

Server-U 14バージョンのインストールと使用方法

Server-Uソフトウェアの紹介Server-U は非常に強力なファイル マネージャーです。FTP...

MySQL 5.7 でルートパスワードを忘れた後に変更する方法の詳細なチュートリアル

序文長い間、MySQL のアプリケーションおよび学習環境は MySQL 5.6 以前のバージョンであ...

HTML Selectは、デフォルトの選択を設定するためにselected属性を使用します。

オプションに属性 selected = "selected" を追加すると、それ...

jQueryは広告を上下にスクロールする効果を実現します

この記事では、広告を上下にスクロールする効果を実現するためのjQueryの具体的なコードを参考までに...

Linuxシステムにおけるキー認証に基づくSSHサービスのプロセス

ご存知のとおり、SSH は現在、リモート ログイン セッションやその他のネットワーク サービスにセキ...

Linux システムで Code Cloud にプロジェクトをアップロードする方法

Code Cloudで新しいプロジェクトtest1を作成します。 公開鍵を取得するには次のコマンドを...

Vue3.0 + TypeScript + Vite初体験の詳しい説明

目次プロジェクトの作成プロジェクト構造メイン.jsアプリ.vue:設定コンポジションAPI参照反応的...

MySQL INT型の完全な分析

序文: Integer は MySQL で最もよく使用されるフィールド型の 1 つで、通常は整数を格...

Tomcat をアンインストールして再インストールする方法 (画像とテキスト付き)

tomcat9をアンインストールする1. Tomcatのインストールはディレクトリに解凍するだけで...

vue-tableは追加と削除を実装します

この記事では、vue-table の追加と削除の具体的なコードを参考までに紹介します。具体的な内容は...