1. 字符串字面量
字面量:literals 直接量:所见即所得
通过字面量也可以调用字符串方法
2. 字符串对象=>类数组
var str = new String('kaikeba'); typeof str -> object
3. 类数组:类似数组
和数组长得非常像,但不是数组,因为并不具备数组的所有方法
4.查找类方法
(1)通过下标str[index]获取值,但有兼容性问题,IE8以下无法使用
(2)通过str.charAt(index)获取值,可以解决兼容性问题,index默认值为0,如果超出str.length或者小于0,会返回一个空字符串
(3)通过str.charCodeAt(index)获取当前字符的Unicode编码,可以用来比较字符串大小,index不给的话,默认值为0,如果如果超出str.length或者小于0(下标不存在),会返回一个NaN
(4)通过String.fromCharCode(num1, num2,...,numN)破解Unicode编码,返回num对应的字符
(5)通过str.indexOf(searchValue[, fromIndex])查找str中是否有对应的字符串,如果有,返回该字符串第一次出现的索引值
- searchValue 当前想要查找的值
如果说,查找的值不存在,返回一个-1!
- fromIndex 从当前位置开始查找,不填默认为0
如果值小于0 ,会当作0进行处理
如果值大于str.length(超出索引值范围),会返回-1
(6)通过str.lastIndexOf(searchValue[, fromIndex])查找str中是否有对应的字符串,如果有,返回该字符串最后一次出现的索引值;也就是从后往前查找,返回查找指定字符对应的索引值
- searchValue 当前想要查找的值
如果说,查找的值不存在,返回一个-1!
- fromIndex 起始默认位置(从后往前),不填默认为str.length
如果值小于0 ,会当作0进行处理
如果值大于str.length(超出索引值范围),会当作str.length进行处理
5.截取类方法
(1)str.slice(begin, end)
返回的是截取的字符串,从begin的位置开始,到end的 位置结束,但不包含end的字符
- begin 截取的起始位置,不传默认为0,可以接收负数,如果是负数(如果当前数小于-length,都会当作0进行处理),则会倒数n位,进行截取
- end 截取的结束位置,不传默认位length,如果大于length,都会当作length进行处理,可以接收负数,如果是负数(如果当前数小于-length,都会当作0进行处理),则会倒数n位,进行截取
begin是包含在截取的字符串内的,而end是不包含在内的
如果end对应的索引处在begin前面,会返回一个空字符串
begin如果超出length,会返回一个空字符串
begin和end处于同一个索引值,会返回一个空字符串
(2)str.substr(start[, length])
(不推荐使用,将来可能会被废除)
截取从start位置开始的字符,返回的是新的字符串,并不会改变原有字符串
- start 截取的起始位置,可以是负数,如果是负数,则从后往前查找length+(start)
如果起始位置的值太大,则默认为0
- length 截取字符的个数,不填,默认到字符串结尾的位置,如果超出length,则默认到字符串结尾的位置
如果个数为负数,则返回一个空字符串
(3)str.substring(begin[, end])(推荐使用)
返回截取的字符串
- begin 截取的起始位置,默认为0
如果小于0 ,则按0进行处理
如果超过length,则返回一个空的字符串
- end 截取的结束位置,默认为length
如果小于0,则按0进行处理
如果超过length,则按length处理
截取的时候包含begin的值,不包含end的值
如果begin对应的索引值在后,end索引值在前,那么就会将begin和end调换
eg:str.substring(5,1) 等同于 str.substring(1,5)
如果begin=end,则返回一个空字符串
(4)str.split(separator[, num])
- separator 决定分隔的字符,该字符的位置会作为分隔点,并且自己是并不在当前数组内的
如果是“”,可以把每一个字符都分隔开
如果是分隔的字符处在字符串的首尾,则会有一个空的字符串
- num 可选,决定分隔的数组中的个数
如果说给的值,超过length,分隔也只会以当前字符串的最大分隔为标准
也可以用来得到当前字符出现的次数str.split(separator).length-1
(5)str1.concat(str2, str3,..., strN)
返回的是一个新的字符串,并不会改变原有的字符串
+= 的性能比 concat 要更好
(6)str.toLowerCase()
把字符串转成小写,生成一个新字符串,并不会影响原有的字符串
(7)str.toUpperCase()
把字符串转成大写,生成一个新字符串,并不会影响原有的字符串
(8)str.trim()
去除首尾的空格,但不能去除中间的空格
6. substring(begin,end) 和 slice(begin,end) 的区别
substring的参数允许begin>end,这样两个参数互换;参数为负,begin按0,end按length;
slice的参数不能互换;参数为负,倒着数第n位;