JS内置对象方法——String
最近,感觉JS有些方法忘记了,这几天会抽空复习的,先从数组方法开始,然后是字符串方法,然后Math方法,在Data方法。
我尽可能的全面,但有些真的忘了,甚至忘得连一点印象也没了。
String方法:
ES6:
1. 字符的 Unicode 表示法
2. codePointAt() JavaScript 内部,字符以 UTF-16 的格式储存,每个字符固定为2
个字节。对于那些需要4
个字节储存的字符
(Unicode 码点大于0xFFFF
的字符),JavaScript 会认为它们是两个字符。
3. String.fromCodePoint() ES5 提供String.fromCharCode
方法,用于从码点返回对应字符,但是这个方法不能识别 32 位的
UTF-16 字符(Unicode 编号大于0xFFFF
)。
4. 字符串的遍历器接口 ES6 为字符串添加了遍历器接口(Iterator),使得字符串可以被for...of
循环遍历。
5. at() ES5 对字符串对象提供charAt
方法,返回字符串给定位置的字符。该方法不能识别码点大于0xFFFF
的字符。
6. normalize() 许多欧洲语言有语调符号和重音符号。为了表示它们,Unicode 提供了两种方法。一种是直接提供带重音符号
的字符,比如Ǒ
(\u01D1)。另一种是提供合成符号(combining character),即原字符与重音符号的合成,两个字符合
成一个字符,比如O
(\u004F)和ˇ
(\u030C)合成Ǒ
(\u004F\u030C)。
7. includes(), startsWith(), endsWith()
传统上,JavaScript 只有indexOf
方法,可以用来确定一个字符串是否包含在另一个字符串中。ES6 又提供了三种新方法。
a). includes():返回布尔值,表示是否找到了参数字符串。
b). startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
c). endsWith():返回布尔值,表示参数字符串是否在原字符串的尾部。
8. repeat() 方法返回一个新字符串,表示将原字符串重复n
次。
9. padStart(),padEnd() ES2017 引入了字符串补全长度的功能。如果某个字符串不够指定长度,会在头部或尾部补全。
padStart()
用于头部补全,padEnd()
用于尾部补全。
ES5:
1. String.fromCharCode() 该方法的参数是一系列Unicode码点,返回对应的字符串。
2. charAt() 该方法返回指定位置的字符,参数是从0
开始编号的位置。
3. charCodeAt()方法返回给定位置字符的Unicode码点(十进制表示),相当于String.fromCharCode()
的逆操作。
4. concat() 方法用于连接两个字符串,返回一个新字符串,不改变原字符串。
5. slice() 方法用于从原字符串取出子字符串并返回,不改变原字符串。它的第一个参数是子字符串的开始位置,第二个参
数是子字符串的结束位置(不含该位置)。
6. substring() 方 法用于从原字符串取出子字符串并返回,不改变原字符串。它与slice
作用相同,但有一些奇怪的规则,因
此不建议使用这个方法,优先使用slice
。此
方法的第一个参数表示子字符串的开始位置,第二个位置表示结束位置。
7. substr()方法用于从原字符串取出子字符串并返回,不改变原字符串。此
方法的第一个参数是子字符串的开始位置,第二个
参数是子字符串的长度。
8. indexOf(),lastIndexOf()这两个方法用于确定一个字符串在另一个字符串中的位置,都返回一个整数,表示匹配开始的位置。
如果返回-1
,就表示不匹配。两者的区别在于,indexOf
从字符串头部开始匹配,lastIndexOf
从尾部开始匹配。
9. trim() 方法用于去除字符串两端的空格,返回一个新字符串,不改变原字符串。
10. toLowerCase(),toUpperCase(),toLowerCase
方法用于将一个字符串全部转为小写,toUpperCase
则是全部转为大写。它们
都返回一个新字符串,不改变原字符串。
11. localeCompare()方法用于比较两个字符串。它返回一个整数,如果小于0,表示第一个字符串小于第二个字符串;如果等于0,
表示两者相等;如果大于0,表示第一个字符串大于第二个字符串。
12. match()方法用于确定原字符串是否匹配某个子字符串,返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null
。
13. search() 方法的用法等同于match
,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1
。
14. replace() 方法用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g
修饰符的正则表达式)。
15. split() 方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组。
常用方法:
1.str.charAt(index); 返回子字符串,index为字符串下标,index取值范围[0,str.length-1];
2.str.charCodeAt(index); 返回子字符串的unicode编码,index取值范围同上;
3.String.fromCharCode(num1,num2,...,numN); 根据unicode编码返回字符串;
4.str.indexOf(searchString,startIndex); 返回子字符串第一次出现的位置,从startIndex开始查找,找不到时返回-1;
5.str.lastIndexOf(searchString,startIndex); 从由往左找子字符串,找不到时返回-1;
6.字符串之间的比较:比较第一个字符的unicode编码值,第一个字符要是相同,就比较第二个,依次往下
'10000' < '2' 1的unicode值比2的unicode值小 true
'10000' > 2 转成数字比较 true
7.截取字符串
str.substring(start,end); 两个参数都为正数,返回值:[start,end) 也就是说返回从start到end-1的字符
str.slice(start,end); 两个参数可正可负,负值代表从右截取,返回值:[start,end) 也就是说返回从start到end-1的字符
不建议用:str.substr(start,length); start参数可正可负,负数代表从右截取
除了 slice() 和 substr() 方法里的负值是代表从右截取,其他方法里的负值一律作为0处理
8.字符串分割成数组
str.split(separator,limit); 参数1指定字符串或正则,参照2指定数组的最大长度
例:str.split(""); 每个字符都被分割 ['','','','']
str.split(); 整个字符串放到数组里 ['']
【引申】:数组变成字符串
arr.join(分隔符) 以,连接
arr.join('') 无缝连接
arr.join('-') 以-连接
arr.join('<span>' + str + '</span>') 以表达式连接
9.str.replace(rgExp/substr,replaceText) 返回替换后的字符串
10.str.match(rgExp); 正则匹配