首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript数据类型和对象类型的混淆

JavaScript数据类型和对象类型的混淆
EN

Stack Overflow用户
提问于 2016-08-23 08:09:06
回答 2查看 1.2K关注 0票数 0

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

我来自一个初学者的java背景,所以javascript中的数据类型和对象类型让我很困惑。我有几个问题:

  1. “对象”数据类型由什么组成?
  2. 数据类型“对象”和对象类型“对象”之间有什么区别?
  3. 当我试图通过输入typeof null来找出"null“的数据类型时,我的IDE告诉我,它是"object”类型,而不是"null“类型,这正是我所期望的。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-23 08:39:27

typeof将始终返回原语类型。(“字符串”、“数字”、“对象”等)。

对象是基元类型结构,是存储为一系列名称-值对的原始数据类型的无序列表。

Object是对象原语的构造函数。

代码语言:javascript
复制
var test = {};
console.log(typeof test);             // object
console.log(test instanceof object)   // false
console.log(test instanceof Object)   // true

根据这一点,要检查日期或数组,使用typeof将返回object

代码语言:javascript
复制
typeof [];           // object
typeof new Date();   // object

要测试对象实际上是日期还是数组,可以使用instanceof

代码语言:javascript
复制
[] instanceof Array;          // true
new Date() instanceof Date;   // true

关于typeof null,根据MDN,它是ECMAScript中的一个bug,应该是null。这个错误在这个答案中有详细的描述。固定物是通过选择加入的方式提出的,不幸的是,由于使用这个特定的“bug”来测试null的代码,更改被拒绝了。

票数 1
EN

Stack Overflow用户

发布于 2016-08-23 08:41:19

W3Schools (不要与W3C (万维网联盟)混淆)经常包含非常不准确的信息。讨论:为什么不w3schools.com?。相反,请使用MDN提供的信息。

下面是一篇关于Javascript中的数据类型的文章,您会发现它很有用:构筑物

回答你的问题:

对象只是属性的集合:键之间的组合(字符串、数字、对象.)还有一个值:其他对象,函数,字符串,数字,.数组(它有一些定制的东西,如指数化等)和日期是对象。

没有对象和对象这样的东西。

类型null返回对象的原因是因为以前的规范从未更改过。为什么类型为空“object”?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39095697

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档