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

    xiaoxiao2024-10-12  85

    本节书摘来自异步社区《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()方法。一旦调用和返回该方法,对象就会转换成原始值。

    最新回复(0)