当在 JavaScript 中使用基本数据类型时,例如数字、字符串和布尔值时,这些类型会被自动转换为对应的包装对象类型 Number、String 和 Boolean。这些包装对象类型在需要调用其原型链上的方法时特别有用。下面介绍一下 JavaScript 包装对象的使用方法。
JavaScript 包装对象概述
在 JavaScript 中包装对象类型是一种对象类型,算是基本数据类型的衍生,其中包装了对应基本数据类型的值,同时提供了一些常用的方法。它们依照对应的基本数据类型,分别为 Number
、String
、Boolean
。这些对象与普通对象之间的区别在于,对这些对象进行属性的引用等操作时,都是临时转换为对应的基本数据类型,不会改变原包装对象实例中存储的数据类型。
例如,当一个字符串被转化为一个 String 对象时,即使对这个对象进行了某些方法调用,原始字符串也不会改变。当我们调用该对象的某些方法或者属性时,比如 length
或者 charAt
,它会先将原始字符串转化为 String 对象,然后对这个对象进行操作,同时并不会改变原始字符串本身。
JavaScript 包装对象的使用
创建一个包装对象
包装对象可以通过直接在基本类型值周围添加对应的对象构造函数来创建,如下所示:
const numObj = new Number(27);
const strObj = new String('hello');
const boolObj = new Boolean(true);
我们还可以使用字面量的(literal)形式来创建包装对象,如下所示:
const numObj = 27;
const strObj = 'hello';
const boolObj = true;
然后可以使用 typeof 运算符来检测这些包装对象类型:
console.log(typeof numObj);
console.log(typeof strObj);
console.log(typeof boolObj);
答案将会是:
object
object
object
访问包装对象值
我们可以使用到包装对象的属性和方法,举个例子:
const numObj = new Number(27);
console.log(numObj.valueOf()); // 返回一个 Number 对象的原始值,也就是数字 27。
console.log(numObj.toFixed(2)); // 返回一个保留了两位小数的字符串 "27.00"。
包装对象与基本类型
javascript 在使用基本类型时,在实际运算时会进行隐式转换,它会自动将基本类型封装成对应类型的对象,进行操作。在使用基本类型时就能够使用到对应类型的方法。例如:
const numObj = 27;
console.log(numObj.toFixed(2));
在这个例子中,numObj 就是一个基本类型的值,而不是一个 Number() 对象。但是 numObj.toFixed()
却可以正常运行,这是因为在使用 numObj
进行运算时,JavaScript 自动把 numObj
转化为一个 Number 对象,让 toFixed()
方法在它上面运行。
同样的,我们还可以使用 String()
和 Boolean()
方法来操作基本类型:
const strObj = String('hello');
const boolObj = Boolean(true);
console.log(strObj.toUpperCase()); // HELLO
console.log(boolObj.toString()); // true
总结
JavaScript 包装对象真正的功能就是帮助我们操作基本类型的值,让我们可以像操作对象一样的方法和属性来处理基本类型。虽然这些包装对象默认情况下都是对象,但它们不能具有基本类型的行为特征。例如:在条件语句中只会根据临时对象的值的真假来判断 if
或 else
分支进行执行,而临时对象永远不会转换为真实存在的包装对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript包装对象使用介绍 - Python技术站