类型的判断
JS基本数据类型:
bigInt(内置类型) , number,string,symbol,string,null,undefined,boolean
复杂数据类型:
object(普通对象), array,function,Date(内置对象)
判断类型的方法
(1)typeof
基本数据类型,除了null均返回相应的类型,null返回object
1 typeof 1 // "number" 2 typeof 'a' // "string" 3 typeof true // "boolean" 4 typeof undefined // "undefined" 5 typeof Symbol() // "symbol" 6 typeof 42n // "bigint" 7 typeof null // "object"
特殊值NaN返回number
typeof NaN // "number"
复杂数据类型,除了function 都返回object
typeof({a:1}) // "object" 普通对象直接返回“object” typeof [1,3] // 数组返回"object" typeof(new Date) // 内置对象 "object" typeof function(){} // "function
(2) obj instanceof Object
[1,2] instanceof Array // true (function(){}) instanceof Function // true ({a:1}) instanceof Object // true (new Date) instanceof Date // true
(3)object.property.toString.call
Object.prototype.toString.call(999) // "[object Number]" Object.prototype.toString.call('') // "[object String]" Object.prototype.toString.call(Symbol()) // "[object Symbol]" Object.prototype.toString.call(42n) // "[object BigInt]" Object.prototype.toString.call(null) // "[object Null]" Object.prototype.toString.call(undefined) // "[object Undefined]" Object.prototype.toString.call(true) // "[object Boolean] //复杂数据类型也能返回相应的类型 Object.prototype.toString.call({a:1}) // "[object Object]" Object.prototype.toString.call([1,2]) // "[object Array]" Object.prototype.toString.call(new Date) // "[object Date]" Object.prototype.toString.call(function(){}) // "[object Function]"
(4)其它
[es6]判断数组:Array.isArray()