ホームページ > 記事 > ウェブフロントエンド > JavaScriptにおける単純データ型と複雑データ型の比較例を詳しく解説
JavaScript のデータ型
単純 (基本) データ型: 数値、文字列、ブール、未定義、Null
複雑 (参照) データ型: オブジェクト、配列、日付、関数など
単純なものは次のとおりです。以下で紹介します ( 基本) データ型と複雑 (参照) データ型の違い:
単純なデータ型: 値をスタックに直接保存します
複雑なデータ型: 参照をスタックに保存します
上記の 2 つのデータ型の保存 その後、次の演習を行うことで 2 つの違いを区別できるようになります:
var a =10; var b = a; //问:当改变a的值后,b的值是否发生改变 a=20; console.log(b); // 10
var s1 = new Object(); var s2 = s1; //问:改变s1的属性后,s2相同的属性是否改变 s1.name = "mh"; console.log(s2.name); //mh
function f2(arr) { arr = [9,8,7,6,5];//产生新的对象 arr[0]=-100; } var array = [1,2,4,7,5]; f2(array); console.log(array[0]);// 1
JavaScript での変数プロモーション、関数宣言、変数スコープ
まず、次のインタビューの質問を見てください:
var num = 10; fun(); function fun() { console.log(num); var num =20; }
勉強する前は、10 に直接答えていたでしょう。今、私は JavaScript のプリコンパイルの概念を学習しています。var キーワードのプロモーションの概念と の概念を理解しています。関数の宣言。上記のコードは次のコードと同等であることがわかります:
var num;//全局作用域 遇到var和function 提升 function fun() { var num ; //局部做用户 遇到var 提升 console.log(num); num =20; } num = 10; fun();
次の質問をもう一度見てください:
//问题:为什么会出现下面的错误? //Uncaught TypeError:fnName is not a function console.log(fnName(1,2)); var fnName = function (a,b) { return a + b; }
上記のコードは次のコードと同等です:
var fnName; console.log(fnName(1,2)); fnName = function (a,b) { return a + b; }
function が等号の右側にあるため、var のみが昇格され、その結果、「Uncaught TypeError: fnName is not a function」エラーが報告されることがわかります。
変数のスコープを理解するには、次のコードを見ることができます:
f1(); console.log(c); console.log(b); console.log(a); function f1() { var a = b = c = 20; console.log(c); console.log(b); console.log(a); }
var a=b=c=20; のような連続代入の場合、 a のみがローカル スコープで再宣言されます。 b と c の機能 ドメインはグローバル スコープです。したがって、グローバル スコープ内の a のみが「Uncaught ReferenceError: a is not registered」というエラーを報告します。
以上がJavaScriptにおける単純データ型と複雑データ型の比較例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。