【1】JavaScriptの基礎が深くなる――データタイプの深く理解と総括

3995 ワード

データのタイプを深く理解する
データタイプの分類
基本(値)タイプ(5種類)
  • String:任意の文字列
  • Number:任意の数字
  • boolean:true/false
  • null:null
  • undefined:undefined
  • オブジェクト(参照)タイプ(3種類)
  • Object:任意のオブジェクト
  • Array:特別なオブジェクト(数値が下付き、内部データが順序正しい)
  • Function:特別なオブジェクト(実行可能)
  • データタイプ判定(3つの方式)typeof:データタイプを返す文字列表現
    var a
    console.log(a) // undefined
    console.log(typeof a) // "undefined"
    console.log(a === undefined) // true
    console.log(typeof a === undefined) // false
    console.log(typeof a === "undefined") // true
    console.log(undefined === "undefined") // false
    
    a = 4
    console.log(typeof a) // "number"
    console.log(typeof a === Number) // false
    console.log(typeof a === "number") // true
    
    a = "hahha"
    console.log(typeof a) // "string"
    
    a = false
    console.log(typeof a) // "boolean"
    
    a = null
    console.log(typeof a) // object
    console.log(a === null) // true
    typeofは、データタイプの文字列表現を返します.
    typeof true //"boolean"
    typeof "hahha" //"string"
    typeof 12 //"number"
    typeof null //"object"
    typeof ccc //"undefined"
    
    typeof function(){} //"function"
    typeof {} //"object"
    instanceof:タイプの例
    まずは理解しますinstanceofの意味:
  • instanceは例の意味であり、A instanceof B は実際にABであるかどうかを判断する例である.この点を理解すれば、タイプを判断するのは難しくないです.
  • var b1 = {
        b2: [1, "hehe", console.log],
        b3: function () {
            console.log("b3")
            return function  () {
                return "Mandy"
            }
        }
    }
    
    console.log(b1 instanceof Object) // true
    console.log(b1.b2 instanceof Array, b1.b2 instanceof Object) // true true
    console.log(b1.b3 instanceof Function, b1.b3 instanceof Object) //true true
    
    console.log(typeof b1.b2) // "object"
    console.log(typeof b1.b3) // "function"
    console.log(typeof b1.b2[1]) // "string"
    console.log(typeof b1.b2[2]) // "function"
    b1.b2[2](555) // 555
    console.log(b1.b3()()) // "b3" "Mandy"
    注意:
  • 関数はFunction タイプであり、Objectタイプ
  • でもある.
  • 配列はArray タイプであり、Object タイプ
  • でもある.===
  • は、undefined およびnull
  • を判断することができる.
    ccc === "undefined" // true
    null === null // true
    締め括りをつける
  • typeof :
  • は、undefined/数値/文字列/ブール値/function
  • を判断することができる.
  • は、nullobjectと、array
    typeof null // "object"
    
    typeof [] // "object"
  • とを判断できない.
  • object:
  • 判定対象の具体的なタイプ
  • instanceof
  • A instanceof B:
  • は、===undefined
  • と判断することができる.
    nullundefinedの違いは?
  • null代表が定義しました.
  • undefinedは、表現が定義され、値が与えられただけの値はnull
  • である.
    // undefined null   ?
    var a
    console.log(a)  // undefined
    a = null
    console.log(a) // null
    いつ変数に null値を与えますか?
  • 初期値は、値をオブジェクトとして付与することを示している.null
  • ですから.
  • が終わる前に、対象をごみの対象にします.
    //  
    var b = null  //      null,          
    //       
    b = ['atguigu', 12]
    //  
    b = null //  b           (        )
    変数タイプとデータタイプを厳密に区別しますか?
  • データの種類:
  • 基本タイプ
  • オブジェクトタイプ
  • 変数の種類(変数メモリ値の種類)
  • 基本タイプ:保存されているのは基本タイプのデータ
  • です.
  • 参照タイプ:保存されているのはアドレス値
  • です.
    実例とタイプを理解する
    //   :     
    //   :     
    function Person (name, age) {//         
      this.name = name
      this.age = age
    }
    var p = new Person('tom', 12) //