- typeof
- instanceof
- constructor(for string|number|boolean|symbol|bigint|object|array|function|symbol)
- toString()(for all)
typeof => 返回一个字符串,表示未经计算的操作数的类型。
使用: typeof 'Ele' | type('Ele') => 'string'
注意:
- 可以判断
string|number|boolean|undefined|symbol|bigint|function无法判断null|array|object typeof NaN => 'number'- 除了
Function外,其他通过new操作符创建的,都返回'object',如typeof new Number(1) => 'object'(symbol无法使用new)
instanceof => 用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上
使用: [] instanceof Array => true
注意: 可用于判断是否为array|function
constructor
使用: [].constructor === Array => true
注意:
null和undefined会报错,其他类型都能判断constructor可被重写及覆盖
Object.prototype.toString.call() => 返回一个表示该对象的字符串
使用: Object.prototype.toString.call(1) => '[object Number]'
注意:
- slice返回的字符串
Object.prototype.toString.call(1).slice(8, -1) => 'Number',根据slice得到的字符串进行判断 - 此方法可判断所有数据类型,推荐使用