str.charAt(index) 获取字符串的值
参数:index 是一个整数,表示字符的位置(从 0 开始计数)。
index 在有效范围内(0 到 str.length - 1),返回对应的字符
index 超出范围(小于 0 或大于等于字符串长度),返回空字符串 ""
这与直接使用 strindex 不同,它会返回 undefined。
不可以正常获取 Emoji字符;
再说一下:不可以正常获取 Emoji字符
const str = 'hello';
console.log(str.charAt(0)); // 输出: "h"
console.log(str.charAt(1)); // 输出: "e"
// index超出范围,返回空字符串
console.log(str.charAt(10)); // 输出: "" (空字符串)
// index超出范围,返回空字符串
console.log(str.charAt(-1)); // 输出: "" (空字符串)
字符串可以通过数组下标(方括号索引)访问单个字符
index的有效范围内(0 到 str.length - 1),返回对应的字符
超出范围返回 undefined
不可以正常获取 Emoji字符
再说一下:不可以正常获取 Emoji字符
const str = 'hello';
console.log(str[0]); // 输出: "h"
console.log(str[2]); // 输出: "l"
// 超出范围返回 undefined
console.log(str[10]); // 输出: undefined
str.at(index) ES2022 新增
index:字符的索引位置。
正整数:从字符串开头开始(0 表示第一个字符)。
负整数:从字符串末尾开始(-1 表示最后一个字符,-2 表示倒数第二个,以此类推)。
无效索引(超出范围):返回 undefined.
不可以正常获取 Emoji字符
再说一下:不可以正常获取 Emoji字符
const str = "Hello, World!";
// 获取第一个字符
console.log(str.at(0)); // "H"
// 获取最后一个字符
console.log(str.at(-1)); // "!"
// 获取倒数第二个字符
console.log(str.at(-2)); // "d"
// 获取中间某个字符
console.log(str.at(7)); // "W"
提取子字符串(截取片段)slice(start, end);
左闭右开:包含 start 位置的字符,但不包含 end 位置的字符。
不可以正常获取 Emoji字符
再说一下:不可以正常获取 Emoji字符
const str = "Hello, World!";
// 1. 只传 start:从索引 7 截取到末尾
console.log(str.slice(7)); // "World!"
// 2. 传 start 和 end:从索引 0 到 5 (不含5)
console.log(str.slice(0, 5)); // "Hello"
// 3. 负数 start:从倒数第 6 个字符开始到末尾
console.log(str.slice(-6)); // "World!" (等价于 slice(7))
// 4. 负数 end:从开头到倒数第 2 个字符之前
console.log(str.slice(0, -2)); // "Hello, Worl"
for (item) of:最推荐,能正确按 Unicode 字符迭代(支持中文、Emoji)
for...of可以遍历下面这些;但是不用来遍历对象
Array(数组),String(字符串)
Map(映射),Set(集合)
TypedArray(类型化数组,如 Uint8Array)
arguments 对象(函数内的参数对象)
NodeList(DOM 节点列表)
for (let item of '192.168😊') {
console.log(item); // 依次输出 '1','9','2','.','1','6','8','😊'
}
这个时候想下:什么是类型化数组?
这个时候想下:arguments 对象
Array.from(str):同样能正确处理 Unicode 字符(如 emoji)
Array.from(str)
返回值:一个新数组,包含字符串中的每个字符作为独立元素
const str = 'Hello😊';
const arr = Array.from(str);
console.log(arr); // ['H', 'e', 'l', 'l', 'o','😊']
扩展运算符:...str
同样能正确处理 Unicode 字符(如 emoji)
const str = 'Hello😊';
const arr = [...str];
console.log(arr); // ['H', 'e', 'l', 'l', 'o','😊']