类型简介
JavaScript类型分为原始类型(原始值、基本数据类型)和引用类型。
原始类型
-
未定义 undefined
-
空 null
-
数值型 number
-
字符串型 string
-
布尔型 boolean
-
符号型 symbol es6
-
长整型 bigint es6
引用类型
- 对象 Object
- 函数 Function
- 数值对象 Number
- 字符串对象 String
- 布尔对象 Boolean
- 数组系列对象 Array *Array
typeof
可以用typeof关键字来判断除**null
**以外的基本数据类型和function引用类型,除此之外,任何引用类型都返回'object'
。
typeof返回类型的小写字符串形式。
typeof (null) === 'object' //历史遗留原因
typeof (() => {}) === 'function'
typeof (undefined) === 'undefined'
typeof ('') === 'string'
instanceof
instanceof 用于判断一个对象是不是另一个对象的后代,而不仅仅用于判断子代。
(() => { }) instanceof Function === true
(() => { }) instanceof Object === true
判断一个已声明变量或字面量的具体类型
Object.prototype.toString.call();
Object.prototype.toString.call([]) === '[object Array]'
Object.prototype.toString.call({}) === '[object Object]'
Object.prototype.toString.call(() => { }) === '[object Function]'
Object.prototype.toString.call(undefined) === '[object Undefined]'
Object.prototype.toString.call(null) === '[object Null]'
截取判断。
因为各个派生对象重写了Object.prototype.toString()
,所以直接toString().call()
原型方法不等同于 变量.toString()
。