javascript - “函数”是 JavaScript 类型吗?
问题描述
“函数”是 JavaScript 类型吗?
例如:
console.log(typeof alert) // returns function
这表明“功能”确实是一种类型
但是,在这个ECMAscript 文档中它说:
ECMAScript 语言类型有 Undefined、Null、Boolean、String、Symbol、Number、BigInt 和 Object”。
有人可以向我解释一下吗?
提前致谢 :)
解决方案
操作员的行为typeof
记录在第 12.5.5 节中,其中有一个表格可以回答您的问题。
它说(意译):
- 给定表达式
typeof val
:- 什么时候
val
实现接口然后返回字符串Object
[[Call]]
typeof
'function'
- When
val
is anObject
which does not implement[[Call]]
thentypeof
返回字符串'object'
。
- 什么时候
因此,function
不是单独的 ECMAScript 类型,而是实际上是Object
-type 的一种特化。
请注意,ECMAScript 规范中的信息非常技术性和狭义,主要针对 ECMAScript 引擎和工具的实现者 - 虽然它对使用 JS 作为语言的开发人员很有用,但它并不适合初学者或作为语言的介绍 - 或解释基础知识。
“函数对象”的精确定义在 6.1.7.2 中解释。
推荐阅读
- javascript - Vuetify2垂直滑块高度不可配置
- visual-studio-code - 如何在 JSX/TSX 的 VSCode 中将 emmet 扩展“className”更改为“class”?
- java - Cassandra:打开描述符实例时出现 CorruptSSTableException
- c++ - 为什么循环只运行一次?
- ruby-on-rails - 使用 ActionText 时转换回纯文本
- laravel - Laravel @yield 显示带有 HTML 标签的内容
- c++ - ID2D1Bitmap::CreateBitmap 的 srcData 是什么
- firefox - 在 CI 服务器上调试 Firefox
- javascript - PWA serviceWorker 并不总是注册
- python - 将数据从 python 保存到 excel 文件为 CSV UTF-8 文件格式