ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptにおける単純データ型と複雑データ型の比較例を詳しく解説

JavaScriptにおける単純データ型と複雑データ型の比較例を詳しく解説

伊谢尔伦
伊谢尔伦オリジナル
2017-07-21 13:58:353525ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。