前端重新学习(5)基本包装类型

 JS 3 个特殊的引用类型:Boolean、Number 和 String这些类型与其他引用类型相似,但同时也具有与各自的基本类型相应的特殊行为。 实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象, 从而能够调用一些方法来操作这些数据。

 一.基本包装类型概述

varbox='Mr.Lee'; //定义一个字符串 

varbox2= box.substring(2); //截掉字符串前两位 

alert(box2); //输出新字符串


变量 box 是一个字符串类型,而 box.substring(2)又说明它是一个对象(PS:只有对象才 会调用方法),最后把处理结果赋值给 box2。'Mr.Lee'是一个字符串类型的值,按道理它不 应该是对象,不应该会有自己的方法,比如: alert('Mr.Lee'.substring(2)); //直接通过值来调用方法


1.字面量写法:

varbox='Mr.Lee'; //字面量 

box.name='Lee'; //无效属性 

box.age= function()

{ //无效方法 

return100; 

}; 

alert(box); //Mr.Lee 

alert(box.substring(2)); //.Lee 

alert(typeofbox); //string 

alert(box.name); //undefined 

alert(box.age()); //错误


2.new 运算符写法:

varbox=newString('Mr.Lee'); //new 运算符 

box.name='Lee'; //有效属性 

box.age= function(){ //有效方法 

return100;

};

alert(box); //Mr.Lee 

alert(box.substring(2)); //.Lee 

alert(typeofbox); //object 

alert(box.name); //Lee 

alert(box.age()); //100


以上字面量声明和 new 运算符声明很好的展示了他们之间的区别。但有一定还是可以 肯定的,那就是不管字面量形式还是 new 运算符形式,都可以使用它的内置方法。并且 Boolean 和 Number 特性与 String 相同,三种类型可以成为基本包装类型。 PS:在使用 new 运算符创建以上三种类型的对象时,可以给自己添加属性和方法,但 我们建议不要这样使用,因为这样会导致根本分不清到底是基本类型值还是引用类型值。
 

Number类型
 

Number 类型有一些静态属性(直接通过 Number 调用的属性,而无须 new 运算符)和方 法。 

varbox=1000.789; alert(box.toString()); //转换为字符串,传参可以转换进制 

alert(box.toLocaleString()); //本地形式,1,000.789 

alert(box.toFixed(2)); //小数点保留,1000.78 

alert(box.toExponential()); //指数形式,传参会保留小数点 

alert(box.toPrecision(3)); //指数或点形式,传参保留小数点

String类型

String 类型包含了三个属性和大量的可用内置方法。

 String 也包含对象的通用方法,比如 valueOf()、toLocaleString()和 toString()方法,但这 些方法都返回字符串的基本值。

varbox='Mr.Lee'; 
alert(box.charAt(1)); //r 
alert(box.charCodeAt(1)); //114 
alert(box[1]); //r,通过数组方式截取

PS:box[1]在 IE 浏览器会显示 undefined,所以使用时要慎重。

猜你喜欢

转载自blog.csdn.net/qq_16546829/article/details/81186575