1.常用字符串
- 转义字符表
字面量 | 含义 |
---|---|
\n | 换行 |
\t | 制表 |
\b | 退格 |
\r | 回车 |
\f | 换页 |
\ | 反斜杠(\) |
’ | 单引号(’) |
" | 双引号(") |
` | 反引号(`) |
\xnn | 十六进制编码nn表示的字符,如:\x41等于"A" |
\unnn | 十六进制编码nnn表示的字符,如:\u03a3等于希腊字符"∑" |
- 这些字符串字面量只算一个字符。
- 字符串的长度可以通过其length属性来获取。
console.log("abcd\u03a3".length);//输出结果为5
- 当修改一个字符串的时候,必须先摧毁原始的字符串,然后将包含新值的另一个字符串保存到该变量。
2.将其他类型转化成为字符串
- toString方法可用于数值,布尔值,对象和字符串值。unll和undefined没有toString方法。
- toString一般没有参数,当数值类型调用这个方法的时候可以添加一个参数来决定将这个数值转化成为多少进制的字符串。
- String()方法可以吧参数转化成为字符串,他可以将null和undefined转化成为字符串,其他类型他会根据toString的逻辑将其转化成为字符串。
- 还可以通过
+""
的方式将其转化成为一个字符串。
3.模板字面量
- 模板字面量就是反引号包裹起来的字符串。
``
- 模板字符串会保留换行符
let mystr = `hello
world`;
console.log(mystr);
//会打印出:hello
//world
- 可以再模板字面量中使用字符串插值
let value = "aaa";
let str = `${valule}bbb`
console.log(str);//打印出aaabbb
- 标签函数和模板字面量
function simpleTag(strings,...values){
console.log(strings);
console.log(values);
return "foobar";
}
let a = 6;
let b = 9;
let tagResult = simpleTag`${a}aaaa${b}bbbb`;
//标签函数后面可以紧跟一个模板字面量
//tagResult的值是simpleTag函数的返回值
//标签函数的第一个参数是模板字面量不包含插值的字符串数组,在上面中,strings为:["","aaaa","bbbb"]
//从第二个参数开始,依次是模板字面量中间的插值
- String.raw是一个标签函数,他用于返回一个转义前的该字符串(原始字符串)
let str = String.raw`\u0049`;//str的值为\u0049
但是对实际的换行符来说是不行的
let str = String.raw`first line
seconed line`
//str的值不为first line\nseconed line
- 可以通过其raw属性获取字符串数组中的每一个原始字符串。
for(const rawString of strings.raw){//string为一个字符串数组
console.log(rawString);//获取到的为字符串数组中每一个元素的原始字符串
}