javascript - 当 typeof 在函数上运行时,它返回 "function"作为类型。为什么它不返回 "object"?

标签 javascript typeof

Javascript 中的函数是一个对象。

在函数上运行 typeof 时,为什么它返回值“function”,而不是“object”?

var objLit = {}
console.log(typeof objLit); // "object"

function hello() {
  console.log("hello world");
}
console.log(typeof hello); // "function"

最佳答案

因为这就是规范所说的。尽管所有函数都是对象,但在函数上使用 typeof 时将返回 'function' 而不是 'object'。请参阅table :

Type of val                            Result:
Object (does not implement [[Call]])   "object"
Object (implements [[Call]])           "function"

(函数有内部方法 [[Call]];非函数没有。)

关于javascript - 当 typeof 在函数上运行时,它返回 "function"作为类型。为什么它不返回 "object"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58368604/

相关文章:

javascript - 使用 Leaflet 和 AngularJS 的热图

javascript - 测试变量的函数

javascript - typescript typeof 字符串无法按预期工作

javascript - AngularJS中的错误处理 http get then construct

javascript - React Native Firebase 搜索 ListView

javascript - 如何在 react 中合并具有相同键的对象

c++ - 将 GCC 的 typeof() 扩展与成员访问相结合

javascript - .slideDown() 不起作用

JavaScript短路评估错误?

javascript - 在一页上设置变量并检查它是否在另一页上定义