mark下
typeof
返回一个字符串,指示未经计算的操作数的类型。
const str = 'abcdefg'
typeof str // string
值得注意的是typeof 无法判断数组
const arr = []
typeof arr // object
typeof 只能判断基本类型,除此之外Date null regExp等都只是object的拓展
因此数组建议使用instanceof来判断
instanceof
instanceof运算符用于测试一个对象是否在其原型链上存在一个构造函数的prototype属性
function fn () {}
function oth () {}
const fun = new fn()
fun instanceof fn // true
fun instanceof oth // false
const arr = []
arr instanceof Array // true
Object.prototype.toString.call()
Object.prototype.toString.call(obj) 返回obj的类型字符串
const str = 'hello world'
const arr = []
const obj = {}
Object.prototype.toString.call(str) // '[object String]'
Object.prototype.toString.call(arr) // '[object Array]'
Object.prototype.toString.call(obj) // '[object Object]'