Skip to content

Latest commit

 

History

History
72 lines (44 loc) · 1.37 KB

File metadata and controls

72 lines (44 loc) · 1.37 KB

类型

  • 原始值: 存取直接作用于它自身。

    • string
    • number
    • boolean
    • null
    • undefined
    const foo = 1;
    let bar = foo;
    
    bar = 9;
    
    console.log(foo, bar); // => 1, 9
  • 复杂类型: 存取时作用于它自身值的引用。

    • object
    • array
    • function
    const foo = [1, 2];
    let bar = foo;
    
    bar[0] = 9;
    
    console.log(foo[0], bar[0]); // => 9, 9
  • 判断具体类型

    const array = [];
    const nodes = document.querySelectorAll("h1");
    
    const getType = (v) => Object.prototype.toString.call(v);
    
    console.log(getType(array)) // => "[object Array]"
    
    console.log(getType(nodes)) // => "[object NodeList]"
    
    console.log(typeof(nodes)) // => "object"

    注意: 通过typeof也可以获取变量的类型,但不是太准确,酌情使用

  • null vs undefined

    null是一个对象,undefinedwindow的一个属性。

    typeof(null) // => "object"
    typeof(undefined) // => "undefined"
    
    const getType = (v) => Object.prototype.toString.call(v);
    
    getType(null) // => "[object Null]"
    getType(undefined) // => "[object undefined]"
    
    console.log( null == undefined ) // => true
    console.log( null === undefined ) // => true