《JavaScript启示录》——1.7 原始值(或简单值)

简介: 了解String()、Number()和Boolean()构造函数是两种目的的构造函数,分别是用于创建字面量/原始值以及复杂值的,这是非常重要的。这些构造函数并不总是返回对象,相反,在不使用new操作符的情况下,它返回实际复杂对象值的原始表示。

本节书摘来自异步社区《JavaScript启示录》一书中的第1章,第1.7节,作者:【美】Cody Lindley著,更多章节内容可以访问云栖社区“异步社区”公众号查看
5、“foo”、true、false,以及null和undefined等JavaScript值都被视为原始值,因为它们是不可细化的。也就是说,数字是数字,字符是字符,布尔值则是true或false,null和undefined就是null和undefined。这些值本身是很简单的,不能表示由其他值组成的值。

查看下面的代码,并思考一下字符串、数字、布尔值、null和undefined值是否可以更加复杂。将它与你所知道的Object()实例或Array()实例或其他任何复杂对象进行比较。

<!DOCTYPE html><html lang="en"><body><script>

var myString = 'string'
var myNumber = 10;
var myBoolean = false; // 可以是true,也可以是false
var myNull = null;
var myUndefined = undefined;

console.log(myString, myNumber, myBoolean, myNull, myUndefined);

// 假设一个像数组或对象这样的复杂对象可以由多个原始值组成,并由此变成一个复杂的多值集
var myObject = {
    myString: 'string',
    myNumber: 10,
    myBoolean: false,
    myNull: null,
    myUndefined: undefined
};

console.log(myObject);

var myArray = ['string', 10, false, null, undefined];

console.log(myArray);

</script></body></html>

很简单,原始值是表示JavaScript中可用的数据/信息的最底层形式(即最简单的形式)。

注意

  • 与使用字面量语法创建值相反,在使用new关键字创建String()、Number()或Boolean()值时,创建的对象实际上是一个复杂对象。
  • 了解String()、Number()和Boolean()构造函数是两种目的的构造函数,分别是用于创建字面量/原始值以及复杂值的,这是非常重要的。这些构造函数并不总是返回对象,相反,在不使用new操作符的情况下,它返回实际复杂对象值的原始表示。
相关文章
|
存储 JavaScript 前端开发
JavaScript中的原始值与引用值
原始值与引用值 在JavaScript中包含两种不同类型的数据:原始值和引用值 原始值 :是指不包含任何引用的值(简单值),比如数字、字符串、布尔值、null和undefined。 引用值 :是指包含了一个引用的值,比如对象、数组、函数和方法。
|
JavaScript 前端开发
【译】JavaScript原始值的秘密生命 【The Secret Life of JavaScript Primitives】
【译】JavaScript原始值的秘密生命 【The Secret Life of JavaScript Primitives】
72 0
|
存储 JavaScript 前端开发
在 JavaScript 中,我们能为原始类型添加一个属性或方法吗?
在 JavaScript 中,我们能为原始类型添加一个属性或方法吗?
179 0
|
JavaScript 前端开发 PHP
现代 JavaScript 原始数据类型转换你学会了吗?
现代 JavaScript 原始数据类型转换你学会了吗?
72 0
现代 JavaScript 原始数据类型转换你学会了吗?
|
JavaScript 前端开发 Web App开发
JavaScript 原始数据类型转换
Js基础数据类型有7种: 原始数据类型(6种) number (数值) string (字符串) boolean (布尔) null (空对象, typeof 检测为object) undefine(未定义) symbol (符号类型) ...
919 0
|
存储 JavaScript 前端开发
《JavaScript启示录》——导读
本书的撰写意图是通过考察原生JavaScript对象和不同环境对原生对象的支持的细微差别,来给读者展现准确的JavaScript世界观:复杂值、原始值、作用域、继承、head对象等。
1363 0
|
JavaScript 前端开发 容器
《JavaScript启示录》——1.21 JavaScript对象和Object()对象
不要将一般术语“JavaScript对象”与Object()对象混淆。前者指的是JavaScript中对象的概念。Object()对象(如var myObject = new Object())是JavaScript中表示的一个非常特殊的值。
1473 0
|
前端开发 JavaScript
《JavaScript启示录》——1.20 构造函数创建的实例可拥有自己独立的属性(实例属性)
在JavaScript中,对象在任何时候都可以扩展(即动态属性)。正如前面提到的,确切地说,JavaScript拥有易变对象(mutable object)。这意味着通过构造函数创建的对象可以扩展属性。
1118 0
|
JavaScript 前端开发
《JavaScript启示录》——1.19 验证对象是否是特定构造函数的实例
原始值使用对象包装器,判断实例时(如 'foo' instanceof String //返回false),instanceof操作符将返回false。如果使用new操作符创建字符串 'foo',instanceof操作符会返回true。
1184 0