包装类的介绍
我们都知道,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(typeofnum);// 打印结果: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('qianguyihao');// 这行代码竟然执行了
}
基本数据类型不能添加属性和方法
方法和属性只能添加给对象,不能添加给基本数据类型。
注意:当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后在调用对象的属性和方法;调用完以后,在将其转换为基本数据类型。
代码举例:
var str=123;
str=str.toString();// 将 number 类型转换为 string 类型
str.hello="千古壹号";// 添加属性
console.log(typeof str);// 打印结果:string
console.log(str.hello);// 打印结果:undefined
再比如,String 对象的很多内置方法,也可以直接给字符串用。此时,也是临时将字符串转换为 String 对象,然后再调用内置方法。
网友评论