str.charAt(index) 获取字符串的值

‌参数‌:index 是一个整数,表示字符的位置(从 0 开始计数)。
index 在有效范围内(0 到 str.length - 1),返回对应的字符
index 超出范围(小于 0 或大于等于字符串长度),返回‌空字符串 ""‌
这与直接使用 str[index] 不同,它会返回 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','😊']

原文地址: https://www.cveoy.top/t/topic/qHlP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录