同名方法概览

JavaScript 中数组和字符串有以下同名方法:

  1. at() - 索引访问(ES2022)

  2. concat() - 连接操作

  3. includes() - 检查包含性

  4. indexOf() - 查找位置

  5. lastIndexOf() - 反向查找位置

  6. slice() - 提取片段

  7. toString() - 转换为字符串

  8. toLocaleString()

  9. valueOf() - 返回原始值

表格总结

 行为相同的方法

以下方法在数组和字符串中的行为基本一致:

  • at()-在数组和字符串中的行为完全相同
  • concat() - 都是连接操作,返回新值,不修改原值
  • includes() - 都是检查包含性,返回布尔值
  • indexOf() - 都是查找位置,返回索引或 -1
  • lastIndexOf() - 都是从后向前查找位置
  • slice() - 都是提取片段,返回新值

行为有差异的方法

以下方法虽然同名,但在细节上有所不同:

  • toString() - 数组会格式化输出,字符串返回本身
  • valueOf() - 数组返回数组引用,字符串返回字符串值

新增的 at() 方法(ES2022)

  • 数组arr.at(index) - 通过索引访问元素,支持负数

  • 字符串str.at(index) - 通过索引访问字符,支持负数

at() 方法特点

  1. 支持负索引:-1 表示最后一个元素,-2 表示倒数第二个

  2. 越界安全:索引超出范围时返回 undefined,不会报错

  3. 语法简洁:比 arr[arr.length - 1] 更直观

  4. 行为一致:在数组和字符串中的行为完全相同

补充:toLocaleString()

toLocaleString() 将数组元素转换为本地化的字符串表示形式。

JavaScript 字符串拥有 toLocaleString() 方法,但这个方法是从 Object.prototype 继承而来的。


继承关系:

在JavaScript中,所有对象都继承自 Object.prototype
String 对象也不例外,它继承了 Object.prototype 上的所有方法
因此,字符串(包括字符串对象和字符串原始值)都有 toLocaleString() 方法


String.prototype.toLocaleString() 的行为:

对于字符串来说,toLocaleString() 方法与 toString() 方法的行为基本相同
它不会像 Number 或 Date 对象那样进行本地化格式化
它只是简单地返回字符串本身

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐