我知道如果我声称函数是数据类型,对许多程序员来说这将是一种亵渎。
但是如果你考虑一下,你不认为函数与JS中的数据类型类似。函数是JS中的一等公民。这不等同于理论上类似于数据类型的函数吗?
答案 0 :(得分:4)
相对于MDN,功能是:
在JavaScript中,函数是第一类对象,即它们是对象,可以像任何其他对象一样被操纵和传递。具体来说,它们是Function对象。
和
函数是JavaScript中的基本构建块之一。函数是一个JavaScript过程 - 一组执行任务或计算值的语句。要使用某个函数,必须在要调用它的范围内的某个位置定义它。
Six data types that are primitives: Boolean Null Undefined Number String Symbol (new in ECMAScript 6) and Object
您还可以查看DevDocs以查看有关功能以及对象的更多信息。阅读此Professional JS会让您的意见更加清晰。 Javascript Garden可以更好地理解作为first-class
对象的函数。
Object是一种基本的JavaScript数据类型,Function Object是其类型之一。所以,答案是不,将JS函数称为数据类型是不对的。
答案 1 :(得分:1)
这只是一个描述选择,真的 函数和数组添加了特定于基本“对象”数据类型的一般定义的东西,并且该语言的很大一部分处理它们的特殊性。
由于某种原因,ECMA并未将其称为数据类型 他们是那里的老板。