本节书摘来自异步社区《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操作符的情况下,它返回实际复杂对象值的原始表示。 相关资源:敏捷开发V1.0.pptx