基本包装类型

注意事项

对象的生存周期

自动创建的基本包装类型仅存在那一行代码执行瞬间,之后会立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。

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()

posted @ 2016-06-19 18:38  idoujiao  阅读(159)  评论(0)    收藏  举报