七大数据类型
Undefined、Null、Boolean、Number、String、Object、Symbol
判断数据类型的 4 种方法
typeof 操作符
- undefined —— 未定义的值
- boolean —— 布尔值
- string —— 字符串
- number —— 数值(包括 NaN )
- object —— 对象 / null
- function —— 函数
instanceof 操作符
- instanceof 检测的是对象的原型
- 当 A 的 __proto__ 指向 B 的 prototype 时,就认为 A 就是 B 的实例
- 基本数据类型由字面量法创建的不能使用该操作符(如 123 instanceof Number 会报错,new Number(123) instanceof Number 返回 true)
- instanceof 遇到网页中包含的框架 ( iframe ) 时会失效,因为 instanceof 假定只有一个全局执行环境,所以来自不同 Window 的构造函数创建出来的实例是没有联系的
Constructor
- constructor 本身是不稳定的,默认 Object,重写 prototype 时引用会丢失
- 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
网友评论