数据类型

一、七种数据类型

  1. Number
  2. String
  3. Boolean
  4. Undefined
  5. NULL
  6. Symbol(ES6)
  7. BigInt(ES10)

二、基本类型&引用类型

  1. 不同的存储方式:

    • 基本类型:值在内存中占据固定大小,保存在栈内存中(存储的是值)
    • 引用类型:值是对象,保存在堆内存中,而栈内存存储的是对象的变量标识符以及对象在堆中的存储地址(存储的是地址)
  2. 不同类型的复制方式:

    • 基本类型:从一个变量向另一个新变量复制基本类型的值,会创建这个值的一个副本,并将该副本复制给新变量,变量值不互相影响
    • 引用类型:从一个变量向另一个变量复制引用类型的值,其实复制的是指针,最终两个变量都指向同一个对象

三、检测数据类型的方法

  1. typeof(需要检测的数据)
    • 返回结果:
    • string number boolean undefined object function
    • typeof window => “object”
    • typeof {} => “object”
    • typeof [] => “object”
    • typeof null => “object”
    • 缺点:只能检测基础数据类型
  2. Object.prototype.toString.call(需要检测的数据)
    • 返回结果:
    • 数值:返回[object Number]
    • 字符串:返回[object String]
    • 布尔值:返回[object Boolean]
    • undefined:返回[object Undefined]
    • null:返回[object Null]
    • 数组:返回[object Array]
    • 函数:返回[object Function]
  • © 2020 哇哇