《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月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- 【学习笔记31】JavaScript冒泡排序和选择排序
- 前端基础 - JavaScript高级应用(动态类型)
- JavaScript 10. 对象
- web开发规范 - javascript书写规范
- JavaScript - 对象(Object)
- 【JavaScript】JavaScript函数的参数
- 【JavaScript】理解与使用Javascript中的回调函数
- 【JavaScript】Object.observe()带来的数据绑定变革
- JavaScript 文件处理
- 《JavaScript忍者秘籍》——导读
- 《JavaScript开发框架权威指南》——2.6 创建Grunt插件
- 《JavaScript设计模式》——2.4 老师不止一位——多继承
- [学习笔记]Javascript的包装对象
- javascript基础,对象和函数(3)
- 如何判断Javascript对象是否存在
- Clean Code之JavaScript代码示例
- 【web前端(三十七)】javascript_jquery核心对象的三种用法、并集选择器
- 【javascript】如何在Javascript中创造map对象?
- JavaScript浏览器对象
- 深入理解JavaScript的闭包特性如何给循环中的对象添加事件
- JavaScript 模块化历程