原始类型的方法
前言
总所周知,在JS中,数据类型有8种,其中原始类型有7种,分别是string,number,boolean,null,undefined,symbol,bigint。以及引用类型1种,object。
一般来说,能调用方法的只有对象。如果一个变量为字符串,是无法调用属性或者方法的。
let a = "alex";
a.age = 18;
alert(a.age); // undefined
但是在我们日常中,经常会使用例如toUpperCase()
的方法,可以直接使用在原始类型上。
let str = "alex";
alert(str.toUpperCase()); // ALEX
##原因
在上面这个例子中,“对象包装器”发挥了作用。“对象包装器”是为了实现可以在原始对象上使用方法,而采取的一个解决方法,在内部实现了这样的流程:
1.在访问str属性的时候,会创建一个包含字符串字面值的特殊对象,并且具有有用的方法,例如 toUpperCase()
。
2.该方法运行并返回一个新的字符串
3.特殊对象被销毁,只留下原始值 str
。
值得注意的是null
, undefined
没有任何“对象包装器”,也没有任何方法,任何调用都会报错。