JavaScript字符串是JavaScript最重要的部分,可能比任何其他的数据类型都更多的用到。
所有的JavaScript对象共享的方法之一就是toString()。
字符串对象叫做String,并且,与其他的JavaScript对象一样,它拥有预先构建在对象类型上的一组属性。
可以使用new运算符来实例化一个String对象,就像声明一个数组或者对象一样。
var str=new String(“Hello,world”);
实例化之后,可以通过str访问所有String】类型的属性,例如:
str=str.toUpperCase();//现在新的字符串是"HELLO,WORLD”
如果没有使用new来访问String,将会创建一个字符串字面量,而不是一个String对象,与直接使用引号达到的效果一样。例如:
var str=String("new string")和var str="new string",两句语句的效果是一样的
尽管String对象和字符串字面量不同,但是我们依然可以在一个字符串字面量上访问String对象的方法。
具体过程是:当一个字符串字面量调用String对象的方法的时候,JavaScript引擎会根据这个字面量创建一个String对象,这个对象包含了字符串字面量。然后创建的新对象调用方法,结束之后,销毁之前创建的String对象。
String类型
string类型是字符串的对象包装类型,提供了很多方法,用来辅助完成ECMAScript中字符串的解析和操作。
1、字符方法
两个用于访问字符串中特定字符的方法是:chartAt()和charCodeAt()
两个方法都接受一个参数:基于0的字符位置。其中charAt()以单字符字符串的形式返回指定位置的那个字符,而charCodeAt()则返回字符编码
这个例子中,使用charAt()得到的是",",而使用charCodeAt()得到的是"44",也就是逗号对应的字符编码。
ECMAScript还另外定义了一个访问个别字符的方法,可以使用方括号加数字索引来访问特定的字符,就像访问数组中的元素一样。如果在IE7及更早版本中使用,会返回undefined。在IE7中
在Chrome中
2、字符串操作方法
这一类有较多个方法。
第一个是concat(),可以将一个或者多个字符串拼接起来,返回拼接得到的新字符串。可以接受任意多个参数,将参数拼接得到新的字符串。
虽然concat()是专门拼接字符串的方法,但是实践中更多使用的还是加法操作符,而且加法操作符在大多数情况下逗比concat()要方便得多。
还有三个基于子字符串创建新字符串的方法:slice(),substr(),substring()。这三个方法都返回被操作字符串的一个子字符串。都可以接受一个或两个参数。
第一个参数指定子字符串开始的位置,这一点对于这三个方法来说都是一样的。
第二个参数表示子字符串到何处结束。如果没有指定,三者都将原字符串的长度作为结束的位置;如果指定了第二个参数,那么三者都有差别。
slice和substring的第二个参数指定的是字符串最后一个字符后面的位置。
substr的第二个参数指定的是返回的字符个数。
值得注意的是:
slice传入两个参数时,第一个参数必须小于第二个参数;而substring传入两个参数时,将较小的数作为开始位置,较大的数作为结束位置。
当传入的参数是负值的时候,这三个方法的行为就不太一样了。
slice会将负值与字符串的长度相加;substr将负的第一个参数加上字符串的长度,而将负的第二个参数转换为0;substring会将所有的负值的参数转换成0。
3、字符串位置方法
有两个可以从字符串红查找子字符串的方法:indexOf(),lastIndexOf()。这两个方法都是从一个字符串中搜索指定的子字符串,然后返回子字符串的位置。如果没有找到该子字符串,则返回-1。
同时,这两个方法都可以接受第二个参数,表示从字符串的哪个位置开始搜索。而indexOf从指定的位置往后搜索,lastIndexOf从指定的位置往前搜索。
4、字符串大小写转换方法
JavaScript提供了四种与大小转换有关的方法。经典的两个是:toUpperCase(),toLowerCase()。前者将字符串全部字母转换成大写,后者将字符串全部字母转换成小写。
toLocaleUpperCase(),toLocaleLowerCase(),针对特定地区使用。
5、字符串的模式匹配方法
这类方法和正则表达式有一定的联系,现在自己还没有接触过。踏踏实实等学会了再来补充。
6、一个很独特的方法:split
这个方法将字符串分割成字符串数组,并返回这个数组。可以接受最多两个参数。
没有参数的时候,该方法会将原字符串当做数组的元素返回。
只有一个参数的时候,该方法会将参数指定的字符的位置作为界限来分解原字符串。如果传入的是空字符串,则回将每个字母都当做数组元素返回。
第二个参数用来限定返回的数组的长度。接着上例
上面这些是String常用的一些方法,光知道有这些还是不行,要实践一下才能更好的熟悉。所谓:熟能生巧,多看多练才是正解。