Ehan Van的博客
首页
前端笔记
首页
前端笔记
  • 前端笔记

    • v-on的使用
    • 编写一个Vue递归组件
    • 非vue文件中申明的ref如何使用
    • Vue3如何在hook中执行异步函数并同步返回响应式数据
    • 如何终止forEach循环
    • 递归创建下拉树数据
    • 编写一个Vue Web Components
    • js数组toString的使用
    • vueconfig配置多page遇到的坑
    • js事件循环机制
    • React列表渲染中图片闪烁问题
    • 开发中未配置Referrer遇到的坑
    • 前端实现文件分片上传
    • 防抖函数
    • 编写一个vue插件
    • 发布订阅模式

Array.prototype.toString()

toString() 方法返回一个字符串,表示指定的数组及其元素。

语法

[1,2,3].toString() // "1,2,3"

返回值

一个表示数组元素的字符串。

描述

Array 对象覆盖了 Object 的 toString 方法。数组的 toString 方法实际上在内部调用了 join() 方法来拼接数组并返回一个包含所有数组元素的字符串,元素之间用逗号分隔。如果 join 方法不可用或者不是函数,则会使用 Object.prototype.toString 来代替, 并返回 [object Array]。

const arr = [];
arr.join = 1; // 将 `join` 重新赋值为非函数的值
console.log(arr.toString()); // [object Array]

console.log(Array.prototype.toString.call({ join: () => 1 })); // 1

当数组需要被表示为文本值,或者当数组在字符串拼接中被引用时,JavaScript 会自动调用 toString() 方法。

示例

使用 toString()

const array1 = [1, 2, "a", "1a"];

console.log(array1.toString()); // "1,2,a,1a"

在稀疏数组中使用 toString()

与 join() 的行为一致,toString() 将空槽视为 undefined 并生成一个额外的分隔符:

console.log([1, , 3].toString()); // '1,,3'

在非数组对象中使用 toString()

toString() 是通用的。它期望 this 具有 join() 方法;如果不存在,则使用 Object.prototype.toString()。

console.log(Array.prototype.toString.call({ join: () => 1 }));
// 1; 一个数字
console.log(Array.prototype.toString.call({ join: () => undefined }));
// undefined
console.log(Array.prototype.toString.call({ join: "not function" }));
// "[object Object]"
Prev
编写一个Vue Web Components
Next
vueconfig配置多page遇到的坑