String,Number,Boolean类型即是基本类型,也是特殊的引用类型。基本包装类型不能自己创造新的属性与方法。但是可以使用系统内置的属性和方法!
实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,
从而能够调用一些方法来操作这些数据。
1.字面量写法:
var box = 'Mr. Lee'; //字面量
box.name = 'Lee'; //无效属性
box.age = function () { //无效方法
return 100;
};
alert(box); //Mr. Lee
alert(box.substring(2)); //. Lee
alert(typeof box); //string
alert(box.name); //undefined
alert(box.age()); //错误
2.new 运算符写法:
var box = new String('Mr. Lee'); //new 运算符
box.name = 'Lee'; //有效属性
box.age = function () { //有效方法
return 100;
};
alert(box); //Mr. Lee
alert(box.substring(2)); //. Lee
alert(typeof box); //object
alert(box.name); //Lee
alert(box.age()); //100
以上字面量声明和new 运算符声明很好的展示了他们之间的区别。但有一定还是可以
肯定的,那就是不管字面量形式还是new 运算符形式,都可以使用它的内置方法。并且
Boolean 和Number 特性与String 相同,三种类型可以成为基本包装类型。
PS:在使用new 运算符创建以上三种类型的对象时,可以给自己添加属性和方法,但
我们建议不要这样使用,因为这样会导致根本分不清到底是基本类型值还是引用类型值。