携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第11天,点击查看活动详情
基本包装类型
什么是基本包装类型?
何为包装?在js基本包装类型中包装指的是将基本数据类型转换成对应的对象
在js中,我们知道数据类型分为基本数据类型和引用数据类型,而js则为我们提供了三个基本包装类👇👇
- String()
- Number()
- Boolean()
那这三个包装类型是如何使用的呢?
var str1 = 'hhhhhh';
console.log(typeof str1);//string
var str2 = new String(str1);
console.log(typeof str2);//object
这就是包装类型将基本数据类型转换成了对象object
属性的绑定
在js中,我们说属性和方法,一般情况下指的都是对象,因而基本数据类型是没有办法添加属性和方法的,只能添加给对象
例如:
var str1 = 'llll';
str1.sex = 'girl';
console.log(typeof str1);//string
console.log(str1.sex);//undefined
如代码所见,当我给str1绑定属性sex的时候,会出现undefined绑定失败,也就是说,基本数据类型是无法绑定属性的。
再如:
var str2 = new String('llll');//包装类型将其转换为对象
str2.num = 123;//绑定属性num
console.log(str2);
console.log(typeof str2); //object
console.log(str2.num);//123
会出现这样的打印结果:
而转换后的对象,绑定num属性成功,打印结果是这样
图中红框部分就是绑定的属性num,而123就是绑定的属性的值
基本包装类型的作用
有人可能会说,基本数据类型不是不能绑定属性吗?那下面的代码又作何解释?
var str3 = 'hello world!';//基本数据类型
console.log(str3.length); // 12
console.log(str3.indexOf("w"));//6
其实并不如此,在js中,当我们去调用基本数据类型的属性和方法时,js引擎会自动使用包装类将其进行隐式转换,通过这样的转换,基本数据类型就有了所谓的属性和方法,因而我们也就能够顺利调用了。