Javascript中的String

来源:互联网 发布:怎么制作淘宝店铺模板 编辑:程序博客网 时间:2024/06/01 22:47

一、字符串类型(String)
1、String 类型用于表示由零个或多个 16 位 Unicode字符组成的字符序列,即字符串。字 符串可以由双引号(“)或单引号(‘)表示。
2、8位0/1 -> 字节 -> 字符 –> 字符串
3、16位Unicode字符:每一个汉字、每一个字母…就是一个字符,字符有不同的类型(16位Unicode),类型决定了每个字符由几个字节组成,每个字节有8个0或1(8位)
PS:我们看到的最基本的就是字符,而每个字符由什么样的0/1序列组成,则是由字符编码决定

二、转义字符,具有特殊意义的反斜杠 \
1、 \ 具有特殊功能–>转义 - 如果想要显示一段含有引号的内容,就可以使用\,例:’you\’re right, it can\’ be a quote.’,如果没有 \ 第二个单引号就会和第一个组成一对,就会出错。 (当然也可以把最外层的单引号换成双引号)
2、 \n 换行,字母n因为\的原因,已经不再表示原来的含义
3、更多参考:http://baike.baidu.com/link?url=Kx8zqozphxDs-AMZST9o1p5y99D5t2iTLhmp8pX7vOcmdRT-rQ6oQ7G4vpoCG6tW-Z6HsZUmdWEFdrGR2Q2N-a

三、字符串的创建和修改
1、创建方式

var str = "string";  // 或如下var str = new String('string');

2、ECMAScript 中的字符串是不可变的,也就是说,字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。

四、自定义操作字符串的方法

1、 自定义函数,把字符串当做参数传递进去,需要注意的是:因为字符串在js中是基本类型,所以当做参数传递后在函数中的一切操作不会影响自身,这就需要通过return返回结果,然后赋值给一个新的变量或者覆盖原来的变量。

var str = 'old'; function add(s){    s += ' 被函数处理了';     console.log(s); //old 被函数处理了     return s; }; var str2 = add(str); console.log(str); // old 字符串str被当做参数传递给了函数add(),函数内部的操作不影响str console.log(str2); // old 被函数处理了 

2、原型prototype,好处是不用传参,直接调用即可,一般不改变自身的值,而是返回需要的值
1)、不接收参数

String.prototype.addStr = function () {    var str = this + '被修改过';    return str;};var str = 'old';var str2 = str.addStr();  //返回需要的值var str3 = str.toUpperCase();  //返回需要的值,不修改strconsole.log(str);  //old  //自身的值没有改变console.log(str2);  // old被修改过console.log(str3);  // OLD

2)、也可以接收参数

String.prototype.addStr = function (s) {    var str = this + s;    return str;};var str = 'old';var str2 = str.addStr('s');  //返回需要的值console.log(str);  //old  自身的值不改变console.log(str2);  // olds

五、javascript中String的常用方法 http://www.css88.com/archives/5180

六、String原生方法
PS:字符串操作一般不改变原字符串值,而是返回想要的值
PS:查找、替换、转换、截取、拼接
1、String.charAt(index) 返回指定index位置的字符,不改变原字符串,当超出字符串长度时,返回空字符串

2、String.concat([string1[, string2[, string3][, …[, stringN]]]]) 合并多个字符串,返回新字符串,不改变原字符串 –>newString = String+string1+string2+…+stringN

3、String.charCodeAt(index) 返回一个整数,代表index位置的Unicode编码,不改变原字符串,当超出字符串长度,返回NAN

4、String.fromCharCode(115,116,114,105,110,103); 根据参数中的Unicode字符串返回对应的字符,直接用Sting调用,前面的结果为string

5、String.indexOf(str [, startIndex]); 返回str在String中第一次出现的位置,如果没有返回-1。 第二个参数startIndex用于指定开始检索的位置 ,如果没有则默认从下标0开始

6、String.lastIndexOf(str [,startIndex]); 返回str在String中最后一次出现的位置,如果没有返回-1。 第二个参数startIndex用于指定开始检索的位置 ,如果是负数则从下标0开始,如果没有或者大于字符串长度都是从最右边开始查找,注意:这个方法是从右边开始查找的,找到之后还是从左边计数

7、String.match(rgExp) 参数是一个正则表达式,在String中查找符合reExp的子字符串,如果reExp设置了全局则返回一个包含所有匹配的子字符串的数组,如果没有设置全局,则返回一个数组,含有第一个符合的子字符串、下标、String

8、String.replace(rgExp, replaceText) 返回一个替换后的字符串,不改变原来的字符串,注意:rgExp全局和局部的区别

9、String.search(rgExp) 返回String中rgExp匹配的第一个子字符串的下标,没有则返回-1,rgExp是否全局不影响结果

10、String.slice(startIndex [, endIndex]) 返回从String上切下startIndex到endIndex的子字符串,不改变原字符串,endIndex如果省略则从startIndex截取到结尾,注意:含头不含尾

11、String.split([separator [, limit]]); 不改变原字符串,返回一个数组,数组元素是String被separatot分割后的各个子字符串,separator可以是字符串也可以是正则表达式,String中和separator匹配的部分不会在数组中出现,limit用于设置数组的长度,默认全部显示

12、String.substr(startIndex [, length]) 返回一个子字符串,从String的startIndex开始截取长度为length的子字符串,如果没有设置length则截取到末尾,不改变原字符串

13、String.substring(startIndex, endIndex) 返回一个子字符串,从String的startIndex截取到endIndex的 子字符串,含头不含尾,不改变原字符串

14、String.toLowerCase() 返回一个字符串,将String中所有字母转换为小写的字符串,不改变原字符串,注意:对于非字母字符不影响

15、String.toUpperCase() 返回一个字符串,将String中所有字母转换为大写的字符串,不改变原字符串,注意:对于非字母字符不影响

16、String.toString() , String.valueOf() 每个js内置对象都有的方法,其功能和类型有关,对于String类型,不改变原字符串,返回字符串值

4 0
原创粉丝点击