我在 W3school 看到了以下言论。
我是java初学者,所以javascript中的数据类型和对象类型让我很困惑。我有几个问题:
- “对象”数据类型由什么组成?
- 数据类型“object”和对象类型“Object”有什么区别?
- 当我尝试通过输入
typeof null
找出“null”的数据类型时,我的 IDE 告诉我它是“object”类型,而不是“null”类型,这是符合我的预期。
最佳答案
typeof
将始终返回原始类型。 (“字符串”、“数字”、“对象”等)。
对象是一种基本类型结构,是存储为一系列名称-值对的基本数据类型的无序列表。
Object
是对象原语的构造函数。
var test = {};
console.log(typeof test); // object
console.log(test instanceof object) // false
console.log(test instanceof Object) // true
据此,要检查日期或数组,使用typeof
将返回object
:
typeof []; // object
typeof new Date(); // object
要测试该对象实际上是日期还是数组,可以使用 instanceof
:
[] instanceof Array; // true
new Date() instanceof Date; // true
关于 typeof null
,根据the MDN,这是 ECMAScript 中的一个错误。并且应该为空。该错误的详细信息参见 this answer 。 A fix已通过选择加入提出,遗憾的是,由于代码使用此特定“错误”来测试 null
,因此更改被拒绝。
关于javascript - JavaScript 数据类型和对象类型的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39095697/