原生函数
1.1 内部属性 [[Class]]
所有typeof返回值为”object“的对象,内部都包含一个内部属性[[Class]]。
这个属性无法直接访问,一般通过Object.prototype.toString()
来查看。
基本类型值被各自的封装对象自动包装。
1.2 封装对象包装
不推荐使用new String(“abc”)以及new Number(123)等封装对象,而是由引擎性能优化时自己决定应该什么时候使用封装对象。
比如:
var a = new Boolean(false);
if (!a) {
console.log("here");//执行不到这里
}
对象返回的永远是真值。
如果要封装对象,推荐使用Object(…)函数。
1.3 拆封对象
如果要拆封一个对象,可以使用valueOf()函数。
var a = new Boolean(false);
a = a.valueOf();
if (!a) {
console.log("here");//正常执行
}