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

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

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

相关文章
|
2月前
|
Java
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
本文深入探讨了Java中方法参数的传递机制,包括值传递和引用传递的区别,以及String类对象的不可变性。通过详细讲解和示例代码,帮助读者理解参数传递的内部原理,并掌握在实际编程中正确处理参数传递的方法。关键词:Java, 方法参数传递, 值传递, 引用传递, String不可变性。
58 1
【编程基础知识】(讲解+示例实战)方法参数的传递机制(值传递及地址传递)以及String类的对象的不可变性
|
23天前
|
JavaScript 前端开发 开发者
|
2月前
|
JavaScript 前端开发
JavaScript Boolean(布尔) 对象
JavaScript Boolean(布尔) 对象
19 3
|
2月前
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
43 3
|
3月前
|
JavaScript 前端开发 Python
JavaScript写个.ts视频文件Url生成器,使用了string.padStart
JavaScript写个.ts视频文件Url生成器,使用了string.padStart
|
3月前
|
JavaScript 前端开发 API
javaScript中常用的String方法以及注意点总结
本文总结了JavaScript中常用的String对象的方法及其注意事项,包括大小写转换、字符获取、子字符串截取、字符串拼接、去除空格、替换、分割以及查找字符串中字符的索引等操作。提供了每种方法的使用示例代码,帮助理解它们的具体用法和差异。
38 2
|
4月前
|
JavaScript 算法 前端开发
JS算法必备之String常用操作方法
这篇文章详细介绍了JavaScript中字符串的基本操作,包括创建字符串、访问特定字符、字符串的拼接、位置查找、大小写转换、模式匹配、以及字符串的迭代和格式化等方法。
JS算法必备之String常用操作方法
|
3月前
|
JavaScript 前端开发
JavaScript Boolean(布尔) 对象
Boolean(布尔)对象用于将非布尔值转换为布尔值(true 或者 false)。
38 8
|
3月前
|
存储 JavaScript 前端开发
JavaScript Number 对象
JavaScript Number 对象
27 0
|
3月前
|
JavaScript 前端开发
今天被JavaScript的String型和数字型的+运算撞了一下腰。
今天被JavaScript的String型和数字型的+运算撞了一下腰。