原生 charAt()
返回给定索引位置的字符。
友情提示,索引从0开始的。
let msg = "abcd" ;console .log (msg.charAt (2 ));
charCodeAt()
如果想把很多的字符都正确的转换为对应的码点,那可以使用 codePointAt()
let msg = "abcd" ;console .log (msg.charCodeAt (2 ));
codePointAt()
接收 16 位码元的索引并返回该索引位置上的码点。
下面的是将 “ab😊d” 字符串转换为字符编码,对比了 charAt()、charCodeAt()、codePointAt(),后面两个可以把这个字符串转化为对应的字符编码,但 charAt() 不行。
这里要注意:不能输成 “ab☺d”,这玩意上面三个都能实现。
但《JavaScript高级开发》第四版上说 charCodeAt() 不行,猜测可能是浏览器进行了设置。
let msg = "ab😊d" ;console .log (msg.charAt (0 )); console .log (msg.charAt (1 )); console .log (msg.charAt (2 )); console .log (msg.charAt (3 )); console .log (msg.charAt (4 )); console .log (msg.charCodeAt (0 )); console .log (msg.charCodeAt (1 )); console .log (msg.charCodeAt (2 )); console .log (msg.charCodeAt (3 )); console .log (msg.charCodeAt (4 )); console .log (msg.codePointAt (0 )); console .log (msg.codePointAt (1 )); console .log (msg.codePointAt (2 )); console .log (msg.codePointAt (3 )); console .log (msg.codePointAt (4 ));
fromCharCode()
根据给定的 UTF-16 码点返回对应字符。
可以接收多个值,将其拼接成一个字符串。
如果想把很多的码点都正确的转换为对应的字符,那可以使用 fromCodePoint()
console .log (String .fromCharCode (0x61 , 0x62 , 0x63 , 0x64 ));
fromCodePoint()
接收任意的码点,返回对应字符。
可以接收多个值,将其拼接成一个字符串。
console .log (String .fromCharCode (97 , 98 , 55357 , 56842 , 100 )); console .log (String .fromCodePoint (97 , 98 , 128522 , 100 ));
normalize()
4种”NFD”、”NFC”、”NFKD”或”NFKC”。
let a1 = String .fromCharCode (0x00C5 ), a2 = String .fromCharCode (0x212B ), a3 = String .fromCharCode (0x0041 , 0x030A ); console .log (a1 === a1.normalize ("NFD" )); console .log (a1 === a1.normalize ("NFC" )); console .log (a1 === a1.normalize ("NFKD" )); console .log (a1 === a1.normalize ("NFKC" )); console .log (a2 === a2.normalize ("NFD" )); console .log (a2 === a2.normalize ("NFC" )); console .log (a2 === a2.normalize ("NFKD" )); console .log (a2 === a2.normalize ("NFKC" )); console .log (a3 === a3.normalize ("NFD" )); console .log (a3 === a3.normalize ("NFC" )); console .log (a3 === a3.normalize ("NFKD" )); console .log (a3 === a3.normalize ("NFKC" )); let a1 = String .fromCharCode (0x00C5 ), a2 = String .fromCharCode (0x212B ), a3 = String .fromCharCode (0x0041 , 0x030A ); console .log (a1.normalize ("NFD" ) === a2.normalize ("NFD" )); console .log (a2.normalize ("NFKC" ) === a3.normalize ("NFKC" )); console .log (a1.normalize ("NFC" ) === a3.normalize ("NFC" ));
concat()
将一个或多个字符串拼接成一个新字符串。
接收一或两个参数,省略第二个参数都意味着提取到字符串末尾。
不修改原数据。
slice()
从字符串中提取子字符串。
接收一或两个参数,省略第二个参数都意味着提取到字符串末尾。
不修改原数据。
将所有负值参数都当成字符串长度加上负参数值。
substr()
从字符串中提取子字符串。
接收一或两个参数,省略第二个参数都意味着提取到字符串末尾。
不修改原数据。
将第一个负参数值当成字符串长度加上该值,将第二个负参数值转换为 0。
substring()
从字符串中提取子字符串。
接收一或两个参数,省略第二个参数都意味着提取到字符串末尾。
不修改原数据。
将所有负值参数都当成字符串长度加上负参数值。
indexOf()
从字符串开头开始查找子字符串,并返回位置(如果没找到,则返回-1)。
lastIndexOf()
从字符串末尾开始查找子字符串,并返回位置(如果没找到,则返回-1)。
startsWith()
检测字符串中是否包含另一个字符串。
从字符串中搜索传入的字符串,并返回一个表示是否包含的布尔值。
可选的第二个参数,表示开始搜索的位置。则指:从指定位置向着字符串末尾搜索。
const msg = "foobarbaz" ;console .log (msg.startsWith ("foo" )); console .log (msg.startsWith ("bar" )); console .log (msg.startsWith ("foo" , 1 ));
endsWith()
检测字符串中是否包含另一个字符串。
从字符串中搜索传入的字符串,并返回一个表示是否包含的布尔值。
可选的第二个参数,表示应该当作字符串末尾的位置。如
const msg = "foobarbaz" ;console .log (msg.endsWith ("baz" )); console .log (msg.endsWith ("bar" )); console .log (message.endsWith ("bar" , 6 ));
includes()
检测字符串中是否包含另一个字符串。
从字符串中搜索传入的字符串,并返回一个表示是否包含的布尔值。
可选的第二个参数,表示开始搜索的位置。则指:从指定位置向着字符串末尾搜索。
const msg = "foobarbaz" ;console .log (msg.includes ("bar" )); console .log (msg.includes ("aaa" )); console .log (msg.includes ("bar" , 4 ));
trim()
const msg = " hello " ;console .log (msg.trim ())
trimLeft() 和 trimRight()方法分别用于从字符串开始和末尾清理空格符。
repeat()
接收一个整数参数,将字符串复制多少次,然后返回拼接所有副本后的结果。
const msg = "hello" ;console .log (msg.repeat (5 ))
padStart() 和 padEnd()
复制字符串,如果小于指定长度,则在相应一边填充字符,直至满足长度条件。
第一个参数是长度,第二个参数是可选的填充字符串,默认为空格。
浏览器上没效果。
toLowerCase()、toLocaleLowerCase()、toUpperCase()和toLocaleUpperCase()
toLocaleLowerCase()和 toLocaleUpperCase()方法旨在基于特定地区实现。在不知道代码设计什么语言时使用。
localeCompare()
比较两个字符串。
相等返回0,字符串比字符串参数小返回-1,字符串比字符串参数大返回1。
let stringValue = "yellow" ; console .log (stringValue.localeCompare ("brick" )); console .log (stringValue.localeCompare ("yellow" )); console .log (stringValue.localeCompare ("zoo" ));
个人简介:脆弱的种子在温室也会死亡,坚强的种子,在沙漠也能发芽。