JS 数据类型

七大数据类型

Undefined、Null、Boolean、Number、String、Object、Symbol

判断数据类型的 4 种方法

typeof 操作符

  • undefined —— 未定义的值
  • boolean —— 布尔值
  • string —— 字符串
  • number —— 数值(包括 NaN )
  • object —— 对象 / null
  • function —— 函数

instanceof 操作符

  1. instanceof 检测的是对象的原型
  2. 当 A 的 __proto__ 指向 B 的 prototype 时,就认为 A 就是 B 的实例
  3. 基本数据类型由字面量法创建的不能使用该操作符(如 123 instanceof Number 会报错,new Number(123) instanceof Number 返回 true)
  4. instanceof 遇到网页中包含的框架 ( iframe ) 时会失效,因为 instanceof 假定只有一个全局执行环境,所以来自不同 Window 的构造函数创建出来的实例是没有联系的

Constructor

  1. constructor 本身是不稳定的,默认 Object,重写 prototype 时引用会丢失
  2. null 和 undefined 没有 constructor

toString

toString 是 Object 的原型方法,调用该方法返回值为 [object xxx]

  • [object String] —— '字符串'
  • [object Number] —— 123
  • [object Boolean] —— true
  • [object Symbol] —— Symbol('abc')
  • [object Undefined] —— undefined
  • [object Null] —— null
  • [object Function] —— new Function()
  • [object Date] —— new Date()
  • [object RegExp] —— new RegExp()
  • [object Error] —— new Error()
  • [object HTMLDocument] —— document
  • [object global] —— window

== 操作

  • null == undefined —— true : undefined 值派生自 null,所以值相等
  • 0 == false —— true
  • "" == false —— true
  • null == false —— false
  • undefined == false —— false
  • NaN == NaN —— false
  • Symbol(123) == Symbol(123) —— false

你可能感兴趣的:(JS 数据类型)