我在W3school上看到了以下声明。

我来自一个初学者的java背景,所以javascript中的数据类型和对象类型让我很困惑。我有几个问题:
typeof null来找出"null“的数据类型时,我的IDE告诉我,它是"object”类型,而不是"null“类型,这正是我所期望的。发布于 2016-08-23 08:39:27
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,根据MDN,它是ECMAScript中的一个bug,应该是null。这个错误在这个答案中有详细的描述。固定物是通过选择加入的方式提出的,不幸的是,由于使用这个特定的“bug”来测试null的代码,更改被拒绝了。
发布于 2016-08-23 08:41:19
W3Schools (不要与W3C (万维网联盟)混淆)经常包含非常不准确的信息。讨论:为什么不w3schools.com?。相反,请使用MDN提供的信息。
下面是一篇关于Javascript中的数据类型的文章,您会发现它很有用:构筑物
回答你的问题:
对象只是属性的集合:键之间的组合(字符串、数字、对象.)还有一个值:其他对象,函数,字符串,数字,.数组(它有一些定制的东西,如指数化等)和日期是对象。
没有对象和对象这样的东西。
类型null返回对象的原因是因为以前的规范从未更改过。为什么类型为空“object”?
https://stackoverflow.com/questions/39095697
复制相似问题