摘要:模板字符串的用法、字符串的扩展方法和数值的扩展
模板字符串
模板字符串是增强版的字符串,用反引号(`)标识。它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。
1 2 3 4 5 6 7 8 9 10 11 12 13
| let common = `普通字符串`
let multiline = `第一行字符串 第二行字符串`
let great = `aaaa,\`bbb\`,ccc`
let name = "流霞" let hello = `你好,我是${name}`
|
字符串的扩展
判断一个字符串是否在另一个字符串中
- includes():返回布尔值,表示是否找到了参数字符串。
- startsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
- endsWith():返回布尔值,表示参数字符串是否在原字符串的头部。
1 2 3 4
| let s = "Hello world!" s.startsWith("Hello") s.endsWith("!") s.includes("o")
|
这三个方法都接受第二个参数,表示开始搜索的位置。但endsWith针对前n个字符
1 2 3 4
| let s = "Hello world!" s.startsWith("world", 6) s.endsWith("Hello", 5) s.includes("Hello", 6)
|
字符串重复
repeat方法返回一个新字符串,表示将原字符串重复n次。
- 参数为负数或 Infinity,会报错。
- 参数是 0 到-1 之间的小数,则等同于 0。
- 参数
NaN等同于 0。
1 2 3
| "x".repeat(3) "hello".repeat(2) "na".repeat(0)
|
补全字符串
如果某个字符串不够指定长度,会在头部或尾部补全。padStart()用于头部补全,padEnd()用于尾部补全。
- 这两个方法接受两个参数,第一个参数是字符串补全生效的最大长度,第二个参数是用来补全的字符串。
- 补全时两者的长度之和超过了最大长度,则会截去超出位数的补全字符串。
- 省略第二个参数,默认使用空格补全长度。
1 2 3 4 5 6 7 8
| "x".padStart(5, "ab") "x".padStart(4, "ab")
"x".padEnd(5, "ab") "x".padEnd(4, "ab")
"x".padStart(5) "x".padEnd(5)
|
消除空格
trimStart()和trimEnd()的行为与trim()一致,trimStart()消除字符串头部的空格,trimEnd()消除尾部的空格。trimLeft()和trimRight()是其别名。
1 2 3 4
| const s = " abc " s.trim() s.trimStart() s.trimEnd()
|
替换字符串
replace()只能替换第一个匹配。如果要替换所有的匹配,必须使用正则表达式的g修饰符。replaceAll()方法,可以一次性替换所有匹配。
1 2 3
| "aabbcc".replace("b", "_") "aabbcc".replace(/b/g, "_") "aabbcc".replaceAll("b", "_")
|
查找指定位置的字符
at()方法接受一个整数作为参数,返回参数指定位置的字符,支持负索引(即倒数的位置,从-1开始)。如果参数位置超出了字符串范围,返回undefined。
1 2 3 4
| const str = "hello" str.at(1) str.at(-1) str.at(6)
|
数值的扩展
进制表示
1 2 3 4 5 6 7 8
| let num1 = 100 let num2 = 0b100 let num3 = 0o100 let num4 = 0x100
Number(0b100) Number("0o100")
|
数值分隔符
在 JavaScript 中,允许使用下划线_作为数值的分隔符,分隔符没有指定的间隔位数,小数和科学计数法也适用。但有以下几个注意点
- 不能放在数值的开头或结尾
- 不能两个或以上的分隔符同时出现
- 不能放在小数点前后
- 不能放在科学计数法的指数
e前后
1 2 3 4
| 1234500 === 123_4500 123_45_00 === 1_234_500 0.000_001 1e10_000
|