基本包装类型
注意事项
对象的生存周期
自动创建的基本包装类型仅存在那一行代码执行瞬间,之后会立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。
var s1 = 'some text';
s1.color = "red";
alert(s1.color);//undefined
可以显式地创建基本包装类型的实例,但是最好不要这样做,会让人分不清楚是在处理基本类型还是包装类型。
类型检测 且会被返回true
对基本包装类型的实例调用typeof()会返回Object,而对基本类型值或者使用转化函数如number() boolean() string()会返回相应的基本类型。而使用instanceof 会返回false,同时所有的基本包装类型都会返回true,即使是false的Boolean的基本包装类型实例
var falseValue = false;
var falseObject = new Boolean(false);
//typeof 的返回值
alert(typeof falseObject);//object
alert(typeof falseValue);//boolean
//instanceof 的返回值
alert(falseObject instanceof Boolean);//true
alert(falseValue instanceof Boolean);//false
//返回值全是true
var result = falseObject && true;//true
var result = falseValue && true;//false
String类型
包装后的字符串对象有个length属性,获取字符串字符的个数,但是要注意的是即使是像中文字符这样的双字节字符也是表示一个,而不是两个。
var str1="abcdefg;";//8
var str1="abcdefg;哈哈";//10
字符方法
charAt()和charCodeAt()这两个方法均接受一个参数,即基于0的字符位置,类似于数组,但是charAt()返回的是字符,charCodeAt()返回的是字符编码。Es5中提供了另外一种通过数字索引来访问字符串中的特定字符,即使用方括号访问,看代码
var str='abcdefg';
alert(str.charAt(1));//b
alert(str.charCodeAt(4));//101
alert(str[2]);//c
字符串操作方法
字符串操作方法,主要是字符串拼接和字符串剪切
concat()//字符串拼接 和`+`操作符一样,而且用`+`更方便
//字符串切割,三个方法在接受一个参数时,都一样,但是有第二个参数不一样,前两个第二个参数是表示字符串的位置,而最后一个是字符串个数
var str = 'abcdefg';
alert(str.slice(1,5));//bcde
alert(str.substring(1,4));//bcd
alert(str.substr(1,4));//bcde
//但是当传入的是负值时,情况不一样
var str='abcdefg';
alert(str.slice(1,-1));//全部加字符串长度
alert(str.substring(-2,-3));//把负值全部转化为0
alert(str.substr(-1,3));//第一个参数加字符串长度,第二个转化为0
字符串位置方法
indexOf()和lastIndexOf()查找子串在字符串中的位置,一个是从前往后,一个是从后往前,第二个参数是跳过一定的字符数,开始查找。一个应用
var str='fajfkjk dhfkasdjk fjaksdfjksa fajskfjkdse';
var positions = new Array();
var pos = str.indexOf('f');
while(pos> -1){
positions.push(pos);
pos= str.indexOf('f',pos+1);
}
alert(positions+ ' '+positions.length);//即统计子字符在一段文章中出现的位置和次数
trim()方法
ES5为所有字符串定义了trim()方法,返回一个字符串副本,删除前置及后缀的所有空格,然后返回结果
var str=' hello ';
alert(str.length);//12
alert(str.trim().length);//5
字符串大小写转换方法
var str='Hello World';
alert(str.toLowerCase());//hello world
alert(str.toUpperCase());//HELLO WORLD
alert(str.toLocaleLowerCase());//hello world这两个是针对地区不一致使用的
alert(str.toLocaleUpperCase());//HELLO WORLD
字符串模式匹配方法
match()
search()
replace()
split()

浙公网安备 33010602011771号