日期:2014-05-16  浏览次数:20475 次

JavaScript 并非所有的东西都是对象

原文:JavaScript values: not everything is an object

译文:JavaScript 并非所有的东西都是对象

译者:justjavac


2012-08-14 更新:重写了大部分内容。 添加了第四节,解释了和类型密切相关的两个运算:typeof 和instanceof

虽然很多语言宣称:“一切皆是对象”,但是 javascript 中,并不是所有的值都是对象。 这篇博文解释了 javascript 中的两种值类型:原始值(primitive)和对象(object),以及混合使用两种类型时的注意事项。

原始值 vs 对象

javascript 中的值可以被划分为两大类:原始值(primitive)和对象(object)。

定义

javascript 的两种值的定义:

下面的值是原始值

  1. 字符串
  2. 数字:在 JavaScript 中所有的数字都是浮点数
  3. 布尔值
  4. null
  5. undefined

所有其它的值都是对象(object)。对象可以进一步划分:

  1. 原始值的包装器:Boolean, Number, String。很少直接使用。

  2. 用字面量创建的对象。 下面的字面量产生对象,也可以通过构造函数创建对象。您可以使用字面量创建对象。

    • [] 就是 new Array()