AI智能
改变未来

JAVASCRIPT 装箱 / 拆箱 & 类型转换

众所周知,object类型才有方法,但基本类型也可以调用方法,比如toString()、toFixed(),这就涉及到了JavaScript的装箱。
装箱的概念:把基本类型转化为相应的对象。而装箱又分为显式与隐式。
隐式装箱:
1.读取基本类型的值,后台创建一个临时的该基本类型所对应的对象。
2.对基本类型调用方法,实际是在该基本类型的对象上调用方法。
3.执行方法后该对象立马销毁。
显式装箱:
用内置对象例如Number、Boolean、String、Object等 对基本类型进行显式装箱。
拆箱的概念:把引用类型的值当做基本类型的值来使用,这里面涉及到拆箱操作,拆箱是把引用类型转化为基本类型。
拆箱内部过程是调用了一个抽象方法toPrimitive(val, type),该方法第一个参数接收转换的参数,第二个参数非必须,为对象被期待转换的类型。
拆箱的本质是:
1.如果val是object,则会先执行valueOf()方法,如果结果为原始值,则返回此结果;
2.否则再调用toString方法;如果得出结果为原始值,则返回结果,否则抛出异常
类型转换

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » JAVASCRIPT 装箱 / 拆箱 & 类型转换