javascript - JavaScript 数据类型和对象类型的混淆

标签 javascript

我在 W3school 看到了以下言论。

enter image description here

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

  1. “对象”数据类型由什么组成?
  2. 数据类型“object”和对象类型“Object”有什么区别?
  3. 当我尝试通过输入 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 answerA fix已通过选择加入提出,遗憾的是,由于代码使用此特定“错误”来测试 null,因此更改被拒绝。

关于javascript - JavaScript 数据类型和对象类型的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39095697/

相关文章:

javascript - 如何删除 Material React Modal 中的蓝色边框?

javascript - 谷歌脚本 : forEach to Array

javascript - 如果菜单被单击,如何关闭菜单

javascript - 重定向不受支持的浏览器的最简单方法是什么?

javascript - Firebase 与 JavaScript

javascript - 从文本选择中确定节点名称

javascript - 加载 jquery 对话框后更改其位置

javascript - 范围的每 2 个分区循环 2

javascript - AngularJS ui-router不加载模板

javascript - 如果数据库中有新条目,聊天更新