【发布时间】:2016-05-13 04:05:50
【问题描述】:
MDN 说:
六种原语数据类型:
- 布尔值
- 空
- 未定义
- 号码
- 字符串
符号(ECMAScript 6 中的新功能)
和对象
但是我混淆了,函数数据类型和对象数据类型。
让我们看看:
var func = function() {
console.log ('Hello World ! ')
};
var obj = {
property : something
}
console.log(typeof(func)); // ===> function
console.log(typeof(obj)); // ===> object
函数数据类型和对象数据类型不同吗?为什么typeof(func) 是函数?不是对象?该文件说有 7 种数据类型(6 个原始数据,1 个对象)。函数不包含在任何地方。
直到现在,1年多,我认为函数的数据类型是对象,我听说函数是JavaScript中的一等对象,所以我对函数是对象没有怀疑,但今天我想了更多时间,想知道。
有什么不同吗?
【问题讨论】:
-
typeof不返回 数据类型。 -
typeof不报告值的真实数据类型。这是一个将数据类型和其他值特征映射到名称的查找表:ecma-international.org/ecma-262/6.0/…。函数是具有内部[[Call]]属性的对象。这就是为什么typeof null是"object"(*脾气暴躁*)。
标签: javascript types