摘要:在本教程中,您将学习关于基本包装类型,包括 Boolean、String 和 Number。
基本包装类型的介绍
JavaScript 提供三种基本包装类型:Boolean、Number 和 String 类型。
基本包装类型使使用基本值(包括布尔值、数字和字符串)变得更容易。
查看以下示例
let language = 'JavaScript';
let s = language.substring(4);
console.log(s); // Script
Code language: JavaScript (javascript)
在此示例中,变量 language
持有一个基本字符串值。它没有像 substring()
这样的方法。但是,上面的代码完美运行。
当您在持有数字、字符串或布尔值的变量上调用方法时,JavaScript 在幕后执行以下步骤
- 创建一个对应类型的对象。
- 在实例上调用特定方法。
- 立即删除实例。
因此,以下代码
let language = 'JavaScript';
let str = language.substring(4);
Code language: JavaScript (javascript)
在技术上等效于以下代码
let language = 'JavaScript';
// behind the scenes of the language.substring(4);
let tmp = new String(language);
str = temp.substring(4);
temp = null;
Code language: JavaScript (javascript)
基本包装类型与引用类型
当您使用 new
运算符创建引用类型的对象时,该对象将保留在内存中,直到它超出范围。
以下变量 s
将保留在堆中,直到它超出范围
let s = new String('JavaScript');
console.log(s);
Code language: JavaScript (javascript)
但是,自动创建的基本包装对象仅存在于一行代码中。查看以下示例
let s = 'JavaScript';
s.language = 'ECMAScript';
console.log(s.language); // undefined
Code language: JavaScript (javascript)
在此示例中,我们尝试访问 s
变量的 language
属性,但收到了 undefined
的值,而不是 'ECMAScript'
console.log(s.language); // undefined
Code language: JavaScript (javascript)
原因是以下代码创建了一个 String
对象并为 language
属性分配一个值。
s.language = 'ECMAScript';
Code language: JavaScript (javascript)
但是,具有 language
属性的 String 对象仅在执行此代码行时存在。
不建议显式创建基本包装对象,如以下所示
let n = new Number(10);
let s = new String('JS');
let b = new Boolean(false);
Code language: JavaScript (javascript)
但是,您应该知道哪些方法可用于基本值,以便更有效地操作它。
在本教程中,您已经了解了 JavaScript 基本包装类型(用于布尔值、数字和字符串)。
本教程是否有帮助?