js基础_50、包装类
基本数据类型
String Number Boolean Null Undefined
引用数据类型
Object
在JS中为我们提供了三个包装类,通过这三个包装类可以将基本数据类型的数据转换为对象
String()
—-可以将基本数据类型字符串转换为String对象
Number()
—-可以将基本数据类型的数字转换为Number对象
Boolean()
—-可以将基本数据类型的布尔值转换为Boolean对象
创建一个Number类型的对象
var num=new Number(3);
console.log(num);
输出结果为3
但是:我们在实际应用中不会使用基本数据类型的对象,如果使用基本数据类型的对象,在做一些比较时可能会带来一些不可预期的结果。
方法和属性只能添加给对象,不能添加给基本数据类型,当我们对一些基本数据类型的值去调用属性和方法时,浏览器(解析器)会临时使用包装类将其转换为对象,然后再调用对象的属性和方法,调完以后,在将其转换为基本数据类型。
比如:
var s=123;
s=s.toString();//浏览器将s转为为了Number的对象,然后调用的是Number对象的tostring()方法,而不是基本数据类型number s 的tostring()方法
console.log(typeof s);//其输出结果为string
比如,给基本数据类型添加属性:
var s=0;
s.hello=’你好’;//这里因为是基本数据类型,所以添加属性浏览器临时将其转换成立一个对象,执行完了之后这个对象就被销毁了。所以,属性自然也没了,只有刚刚被转换时存在。
console.log(s.hello);//输出结果为undefined,这里又被转换为了一个对象,因为这里对基本数据类型使用其属性,但是这个临时被转的对象和上一步被转换的对象不相同,也没有使用new关键字声明对象,所以这个对象里也没有该属性。
所以,包装类是给浏览器底层自己用的。
我们使用基本数据类型的String能够直接使用String对象方法和属性也就是因为基本数据类型临时被转为了String对象。(自动装箱和拆箱)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本