zl程序教程

您现在的位置是:首页 >  前端

当前栏目

《JavaScript启示录》——1.11 原始值(String、Number、Boolean)在被用做对象时就像对象

JavaScript对象 string number 原始 boolean 1.11 启示录
2023-09-11 14:17:43 时间

本节书摘来自异步社区《JavaScript启示录》一书中的第1章,第1.11节,作者:【美】Cody Lindley著,更多章节内容可以访问云栖社区“异步社区”公众号查看

1.11 原始值(String、Number、Boolean)在被用做对象时就像对象

原始值被当作构造函数创建的一个对象来使用时,JavaScript会将其转换为一个对象,以便可以使用对象的特性(如方法),而后抛弃对象性质,并将它变回到原始值。下面的代码采用了原始值,并展示了将值作为对象使用时会发生什么事情。

 !DOCTYPE html html lang="en" body script 

// 生成原始值

var myNull = null;

var myUndefined = undefined;

var primitiveString1 = "foo";

var primitiveString2 = String(foo); // 没有使用new因此获得的是原始值

var primitiveNumber1 = 10;

var primitiveNumber2 = Number(10); // 没有使用new,因此获得的是原始值

var primitiveBoolean1 = true;

var primitiveBoolean2 = Boolean(true); // 没有使用new,因此获得的是原始值

/* 使用toString()方法(从object.prototype继承而来)来演示:当把原始值用作对象时,原始值就会转化成对象 */

// 输出 "string string"

console.log(primitiveString1.toString(), primitiveString2.toString());

// 输出 "number number"

console.log(primitiveNumber1.toString(), primitiveNumber2.toString());

// 输出 "boolean boolean"

console.log(primitiveBoolean1.toString(), primitiveBoolean2.toString());

// 因为null和undefined没有转化成对象,也没有构造函数,所以下面2条语句会抛出错误

console.log(myNull.toString());

console.log(myUndefined.toString());

 /script /body /html 

上述代码示例中,所有的原始值(除null和undefined)都被转换为对象,以便充分利用toString()方法。一旦调用和返回该方法,对象就会转换成原始值。


Javascript中字符串直接量与new String的区别 通过String直接创建的字符串和字符串表面量为基本数据类型,属于JavaScript中的直接量(包含数字,以及数组、对象和正则表达式、数字和布尔值的直接量格式)。 通过 New String来实例化的是一个String对象, 所以我们可以调用String对象的方法。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。