第8章 字符串
创建字符串
使用字面量创建字符串
js
let str1 = 'hello!';
使用 String 构造函数创建字符串
js
let str2 = new String('你好');
转义字符
js
let str3 = '他说:\'我们出去玩吧!\''; // 通过反斜杠转义
let str4 = '\u1010'; // တ 转义Unicode用 \u开头
模板字符串
概念
- 模板字符串是增强版的字符串,用反引号(`)标识
- 模板字符串可以保留格式
- 模板字符串可以插入变量
保留格式
js
//1.模板字符串可保留格式
let str = `Lorem ipsum dolor sit,
amet consectetur adipisicing elit.
Quo vel minima quisquam,
doloremque sed architecto,
recusandae odit laboriosam!`;
console.log(str);
/* Lorem ipsum dolor sit,
amet consectetur adipisicing elit.
Quo vel minima quisquam,
doloremque sed architecto,
recusandae odit laboriosam! */
插入变量
- 使用
${}
即可插入变量
js
let uname = '只抄';
let str = `Hello,${uname}`;
console.log(str); // Hello,只抄
高级用法
- 模板字符串可以作为参数传入函数
- 函数的第一个参数为模板字符串中的字符组成的数组(以变量占位符为分隔)
- 后面的参数为每一个变量
js
function greeting(strings, gender, age) {
console.log(gender); // M
console.log(age); // 18
let genderStr = gender === 'M' ? '先生' : '女士';
return `${strings[0]}${genderStr}`;
}
let age = 18;
let gender = 'M';
let result = greeting`你好,只抄${gender}${age}`;
字符串遍历
for 循环
js
let str = 'hello world';
for (let i = 0; i < str.length; i++) {
console.log(str.charAt(i)); // charAt(index) 返回指定位置的字符
console.log(str[i]); // str[index] H5新增
}
for...of 遍历
- for...of 遍历会得到字符串的值 (value)
js
let str = 'hello world';
for (let i of str) {
console.log(i);
}
返回字符位置
- str.indexOf() 方法可以返回字符的索引
js
let str = '改革春风吹满地,春天来了';
str.indexOf('春'); // 2
str.indexOf('春', 3); // 从索引3开始往后查找 值为 8
替换字符
- str.replace(searchValue, replaceValue) 方法可以替换字符
js
let str = 'andy';
let newStr = str.replace('a', 'b'); // newStr = bndy
字符转换为数组
- str.split('分隔符') 可以将字符串按照分隔符转换为数组
js
let str = 'red, pink, blue';
let arr = str.split(','); // arr = ['red', 'pink', 'blue']
字符串裁切
slice
- 接受两个参数,前闭后开
- 可以接受负值,最后一个字符为 -1
- 从右往左裁切则为空字符串
js
let str = 'This is a long string...';
console.log(str.slice(0, 4)); // This
console.log(str.slice(-2, -1)); // .
console.log(str.slice(4, 1)); // '' 空字符串
substring
- 与 slice 类似,接受两个参数,前闭后开
- 与 slice 不同的是不接受负数
- 从右往左裁切则会自动调换两个参数的位置
js
let str = 'This is a long string...';
console.log(str.substring(0, 4)); // This
console.log(str.substring(-2, -1)); // '' 空字符串
console.log(str.substring(4, 1)); // his 将两个参数调换
substr
- 接受两个参数,第一个参数为起始位置,第二个参数为截取长度
js
let str = 'This is a long string...';
console.log(str.substr(2, 2)); // is
字符串拼接
- 方式一:用 + 拼接
- 方式二:使用
str.concat(str1, str2, ...)
拼接
js
let str1 = 'hello';
let str2 = ' world';
let str3 = str1 + str2; // hello world
let str4 = str1.concat(str2); // hello world
大小写转换
- str.toUpperCase() 转换成大写
- str.toLowerCaser() 转换为小写
js
let str = 'Hello';
let upperStr = str.toUpperCase(); // HELLO
let lowerStr = str.toLowerCase(); // hello
去除空格
- trim() 方法可以去除首尾的空格,不可以去除中间的空格
js
let str = ' hello world ';
console.log(str.trim()); // hello world
预览: