包装对象
我们知道,javaScript是一种符合值,它是属性或已命名值得集合,可以通过“.”符号来引用其属性。当属性是一个函数的时候,我们称其为方法。
我们不难发现。字符串也有方法
那么就有个问题,字符串既然不是对象,为什么可以使用属性呢?原来在javaScript中,只要字符串引用了属性,那么该字符串就会通过new String(a)的方式临时转换为对象,
一旦属性引用结束,该对象就会被销毁。何以见得?请看如下例子
那我们再来看看直接用包装类创建的字符串对象执行上述操作会怎么样
至此,我们需要明白如下两点:
1.var a ="test"和var b = new String("test");有本质区别,他们的类型不同,可以通过typeOf看其类型,如下
2.在取字符串,数字或布尔值时,创建的临时对象,被称为包装对象。你也可以显示的创建包装对象比如上面的fuck you mother例子,字符串 new String(),数字 new Number(), 布尔 new Boolean()
3.在比较的时候“==”会将包装类转换为原始值进行比较,而“===”则严格比较值和其类型