您当前的位置: 首页 > 学无止境 > JS经典实例 网站首页JS经典实例
javascript学习笔记-基本包装类型
发布时间:2018-04-05 17:52:19编辑:雪饮阅读()
基本包装类型
为了便于操作基本类型值, ECMAScript 提供了 3 个特殊的引用类型: Boolean、 Number
和 String。 这些类型与其他引用类型相似, 但同时也具有与各自的基本类型相应的特殊行为。
实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,
从而能够调用一些方法来操作这些数据。
var box = 'Mr. Lee'; //定义一个字符串
var box2 = box.substring(2); //截掉字符串前两位
alert(box2); //输出新字符串
变量 box 是一个字符串类型,而 box.substring(2)又说明它是一个对象(PS:只有对象才
会调用方法),最后把处理结果赋值给 box2。'Mr. Lee'是一个字符串类型的值,按道理它不
应该是对象,不应该会有自己的方法,比如:
alert('Mr. Lee'.substring(2)); //直接通过值来调用方法
基本包装类型不支持自定义属性和方法只能使用内置方法属性
var box='miao';
box.name='xm';
box.say=function (){
return 'my is xm';
};
alert(box.substring(2));
//undefined
alert(box.name);
//无效方法调用
alert(box.say());
基本包装类型若通过new来实例化则可以自定义属性和方法以及可以使用内置方法属性
var box=new String('miao');
box.name='xm';
box.say=function (){
return 'my is xm';
};
alert(box.substring(2));
alert(box.name);
alert(box.say());
PS:在使用 new 运算符创建以上三种类型的对象时,可以给自己添加属性和方法,但
我们建议不要这样使用,因为这样会导致根本分不清到底是基本类型值还是引用类型值。
number的一些静态属性
Number 类型有一些静态属性(直接通过 Number 调用的属性,而无须 new 运算符)和方
法。
Number 静态属性
属 性 描述
MAX_VALUE 表示最大数
MIN_VALUE 表示最小值
NaN 非数值
NEGATIVE_INFINITY 负无穷大,溢出返回该值
POSITIVE_INFINITY 无穷大,溢出返回该值
prototype 原型,用于增加新属性和方法
alert(Number.MAX_VALUE);
number的一些内置函数
var box=1000;
//把数字转换为字符串
var stringBox=box.toString();
//根据本地数字格式转换为字符串
var localString=box.toLocaleString();
//将数字保留小数点后指定位数并转化为字符串
var xs=box.toFixed(2);
//将数字以指数形式表示并转化为字符串
var zs=box.toExponential();
/*
指数形式或点形式表述数, 保留小数点后面指定位数并转化为字符串
具体是指数形式或点形式皆依据保留位数
*/
var zshds=box.toPrecision(4);
alert(typeof stringBox);
alert(localString);
alert(xs);
alert(zs);
alert(zshds);
String类型的属性
var box='xy';
alert(box.length);
//返回创建 String 对象的函数
alert(box.constructor);
String的字符方法
var box='xy';
//返回指定索引位置的字符
alert(box.charAt(1));
//以 Unicode 编码形式返回指定索引位置的字符(ascii 码表上面该字符对应的十进制值)
alert(box.charCodeAt(1));
//字符串本身也以数组的形式存在
alert(box[1]);
String的字符串操作方法
var box='xy';
//字符串连接函数,可以多个参数进行连接
alert(box.concat('Love','Duminjie'));
//返回字符串从n到m的字符(若只有一个参数则代表从n开始到末尾)
//alert(box.slice(0,2));
//参数为负数则用总长度与该负数的和做为该参数的最终值
//alert(box.slice(-1));
//返回字符串从n到m的字符(若只有一个参数则代表从n开始到末尾)
//alert(box.substring(0,2));
//参数若为负数则参数最终值为0,如果第二个参数的最终值比第一个参数的最终值大,则两个参数调换位置
//alert(box.substring(-1));
//返回字符串从n开始m个字符(若只有一个参数则代表从n开始到末尾)
//alert(box.substr(0,2));
//参数为负数则用总长度与该负数的和做为该参数的最终值,第二个参数为负数则该参数最终值为0
alert(box.substr(-1));
//alert(box.substr(0,-1));
String的位置方法
var box = 'Mr.Lee is Lee';
alert(box.indexOf('L')); //从初始位置搜索指定字符第一次出现的位置
alert(box.indexOf('L', 5));//从指定位置搜索指定字符第一次出现的位置
alert(box.lastIndexOf('L')); //从末尾反向搜索指定字符第一次出现的位置
alert(box.lastIndexOf('L', 5)); //从指定位置反向搜索指定字符第一次出现的位置
//以上函数都将返回搜索结果的索引位置,若结果为空,则返回-1
本地化大小写转换
var box='xy';
alert(box.toLocaleLowerCase());
alert(box.toLocaleUpperCase());
PS:只有几种语言(如土耳其语)具有地方特有的大小写本地性,一般来说,是否本
地化效果都是一致的。
字符串的模式匹配方法
var box = 'Mr.Lee is Lee';
//找到 L,返回 L 否则返回 null
//alert(box.match('L'));
//找到 L 的位置,和 indexOf 类似
//alert(box.search('L'));
//把 L 替换成 Q(只替换一个)
//alert(box.replace('L', 'Q'));
//以空格分割成字符串
alert(box.split(' '));
字母及ascii码方法
//根据ascii码表中的十进制码返回一个对应的字符
//alert(String.fromCharCode(121));
var box='Lee';
//完全相同,返回0
alert(box.localeCompare('Lee'));
//由于字母A在字母表中在L之前,所以返回1
alert(box.localeCompare('Aee'));
//由于字母Z在字母表中L之后,所以返回-1
alert(box.localeCompare('Zee'));
html方法
var box='百度';
alert(box.link('http://www.baidu.com'));
alert(box.bold());
关键字词:javascript,包装类型