是否可以说JS函数可以是数据类型?

Would it be right to say that JS function can be a datatype

本文关键字:数据类型 可以说 JS 函数 是否      更新时间:2023-09-26

我知道,如果我宣称函数是数据类型,对很多程序员来说是一种亵渎。

然而,如果你仔细想想,你不认为函数类似于JS中的数据类型吗?函数在JS中是头等公民。这难道不等于函数在理论上类似于数据类型吗?

根据MDN,函数如下:

在JavaScript中,函数是一等对象,也就是说,它们是对象,可以像其他对象一样被操作和传递。具体来说,它们是Function对象。

函数是JavaScript中最基本的构建模块之一。函数是一个JavaScript过程——一组执行任务或计算值的语句。要使用函数,必须在希望调用它的作用域的某个地方定义它。

而数据类型为

Six data types that are primitives:
    Boolean
    Null
    Undefined
    Number
    String
    Symbol (new in ECMAScript 6)
and Object

你也可以查看DevDocs查看更多关于函数和它们如何对象。阅读这篇专业JS会让你的观点更清晰。Javascript Garden提供了作为first-class对象的函数的更好理解。

Object是一个基本的JavaScript数据类型,而Function Object是它的类型之一。所以,答案是不,将JS函数称为数据类型是不对的。

这只是一个描述选项,真的。
函数和数组为基本"对象"数据类型的一般定义添加了一些特定的内容,并且语言的很大一部分处理它们的特殊性。

由于某些原因,ECMA不称它们为数据类型。
他们是那里的老板。