这是 W3C
的描述:
对变量或值调用 typeof 运算符将返回下列值之一
undefined - 如果变量是 Undefined 类型的
boolean - 如果变量是 Boolean 类型的
number - 如果变量是 Number 类型的
string - 如果变量是 String 类型的
object - 如果变量是一种引用类型或 Null 类型的
但是,为为什么:
typeof(Function);
typeof(new Function);
typeof(Array);
// 都返回'function'
这是我在segmentfault另一个问题上看到的
typeof可以检测基本类型包括 undefined, string, number, boolean,但是对于检测对象就不靠谱了。不只是Array,javascript中的对象,包括 Date, String, Boolean, Number, Object, Function, Array, RegExp, Error 使用typof只会返回 "object"。
求解释:
为什么typeof
为什么会有返回function
的情况?
或者请大牛告诉:typeof
到底有哪些返回类型?
MDN中的说明
数据类型检测
typeof(对变量或值调用 typeof 运算符将返回(字符串)下列值之一)
undefined - Undefined类型
number - Number类型
boolean - Boolean类型
string - String类型
symbol - Symbol类型(ECMAScript6新增)
function - 函数对象([[Call]]在ECMA-262条款中实现了)
object - 引用类型 或 Null类型