18 - JavaScript 包装类

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-NC-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Yuanriver/article/details/102713021

包装类

包装类的介绍

我们都知道,js中的数据类型包括以下几种。

  • 基本数据类型:String、Number、Boolean、Null、Undefined

  • 引用数据类型:Object

JS为我们提供了三个包装类

  • String():将基本数据类型字符串,转换为String对象。

  • Number():将基本数据类型的数字,转换为Number对象。

  • Boolean():将基本数据类型的布尔值,转换为Boolean对象。

通过上面这这三个包装类,我们可以将基本数据类型的数据转换为对象

代码举例:

	var num = new Number(3);

	var str = new String("hello");

	var bool = new Boolean(true);

	console.log(typeof num); // 打印结果:object

需要注意的是:我们在实际应用中不会使用基本数据类型的对象。如果使用基本数据类型的对象,在做一些比较时可能会带来一些不可预期的结果。

比如说:

	var boo1 = new Boolean(true);
	var boo2 = new Boolean(true);

	console.log(boo1 === boo2); // 打印结果竟然是:false

再比如说:

var boo3 = new Boolean(false);

if (boo3) {
	console.log('river'); // 这行代码竟然执行了
}

基本数据类型不能添加属性和方法

方法和属性只能添加给对象,不能添加给基本数据类型。

注意:当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后在调用对象的属性和方法;调用完以后,在将其转换为基本数据类型。

代码举例:

	var str = 123;

	str = str.toString(); // 将 number 类型转换为 string 类型
	str.hello = "YuanRiver"; // 添加属性

	console.log(typeof str); // 打印结果:string
	console.log(str.hello); // 打印结果:undefined

再比如,String 对象的很多内置方法,也可以直接给字符串用。此时,也是临时将字符串转换为 String 对象,然后再调用内置方法。

猜你喜欢

转载自blog.csdn.net/Yuanriver/article/details/102713021