JS 的数据类型和类型判断
ON THIS PAGE
数据类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
类型判断
在使用 typeof 来判断数据类型的时候,除了object,null 和 array 也会被判定为 "object"。所以,使用typeof 来判断数据类型,会和预想的结果有一些出入。
更准确的方式是用 Object.prototype.toString.call() 来判断:
console.log(Object.prototype.toString.call("abc"))
// "[object String]"
console.log(Object.prototype.toString.call(1))
// "[object Number]"
console.log(Object.prototype.toString.call({a:1}))
// "[object Object]"
console.log(Object.prototype.toString.call([1,2,3,4,5]))
// "[object Array]"
console.log(Object.prototype.toString.call(function(){}))
// "[object Function]"
console.log(Object.prototype.toString.call(true))
// "[object Boolean]"
console.log(Object.prototype.toString.call(null))
// "[object Null]"
console.log(Object.prototype.toString.call(undefined))
// "[object Undefined]"
console.log(Object.prototype.toString.call(/a/))
// "[object RegExp]"
console.log(Object.prototype.toString.call(new Date))
// "[object Date]"
console.log(Object.prototype.toString.call(new function(){}))
// "[object Object]"
2019-07-05