笔者今天翻看《你不知道的js》;突然记不太清typeof的返回值具体有哪些。写个笔记记录一下。
typeof 运算符把类型信息当作字符串返回。
我们可以使用typeof来获取一个变量是否存在,如if(typeof a!="undefined"){}
,而不要去使用if(a)
因为如果a不存在(未声明)则会出错,对于Array,Null等特殊对象使用typeof一律返回object,这正是typeof的局限性。
typeof的返回值
typeof有6种可能返回的返回值:
- 'string' --字符串类型的变量或值
- 'undefined' ----未定义的变量或值
- 'boolen' --布尔类型的变量或值
- 'number'--数字类型的变量或值
- 'object' --对象类型的变量或值,或者null,Array
- 'function'--函数类型的变量或值
例子
console.log('1',typeof 'aixoaxue')
console.log('2',typeof undefined)
console.log('3',typeof true)
console.log('4',typeof 23)
console.log('5',typeof {a:'45'})
console.log('6',typeof function () {
})
总的来说,typeof会返回6种类型;对于object
我们需要进一步判断的,就需要用到instanceof