包装类
Number()、String()和Boolean()分别是数字、字符串、布尔值(必须是基本类型值)的”包装类“。
Number()、String()和Boolean()的实例都是object类型,它们的PrimitiveValue属性储存它们的本身值,不能打点调用此属性
new出来的基本类型值可以正常参与运算
很多编程语言都有”包装类“的设计,包装类的目的就是为了让基本类型值可以从他们的构造函数的prototype上获得方法。
<script>
var a = new Number(123);
var b = new String('慕课网');
var c = new Boolean(true);
console.log(a);
console.log(typeof a); //object
console.log(b);
console.log(typeof b); //object
console.log(c);
console.log(typeof c); //object
console.log(5 + a); //128
console.log(b.slice(1, 2)); //'课'
console.log(c && true); //true
var d = 123;
console.log(d.__proto__ == Number.prototype); //true
var e = '慕课网';
console.log(e.__proto__ == String.prototype); //true
console.log(String.prototype.hasOwnProperty('toLowerCase')); //true
console.log(String.prototype.hasOwnProperty('slice')); //true
console.log(String.prototype.hasOwnProperty('substr')); //true
console.log(String.prototype.hasOwnProperty('substring')); //true
console.log(String.prototype);
</script>