javascript - 为什么添加 "{" "}"会从数组中删除括号? (JavaScript)

标签 javascript arrays string object

例子:

var test = [];
test.push( 'string', 'test'); //[ 'string', 'test' ]
console.log('{' + test + '}'); // {string,test}
console.log(typeof('{' + test + '}')); //string

为什么添加 {} 会从测试中删除括号?我本以为第三行的结果是 { [string, test] }

最佳答案

原因是创建 Javascript 时做出的许多错误选择之一,现在由于向后兼容性而修复为时已晚。

当转换为字符串时,数组成为转换为字符串的元素的串联,用逗号分隔而不用[ ] 标记

例如这就是原因

(1 == [1])

在Javascript中是true(两者类型不同,转换成字符串是一样的),以及定义的原因

var a = [1], b = 1, c = [[1]];

表达式

(a == b && b == c && a != c)

也是 true

关于javascript - 为什么添加 "{" "}"会从数组中删除括号? (JavaScript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42757995/

相关文章:

c - 有没有更好的方法来查找一个字符在 C 中的数组或字符串中出现的次数?

r - 用符号 "*"分割字符串

string - 筛选包含时间戳记的字符串-Kotlin

Java如何从randomaccessfile中读取字符串?

javascript - 根据复选框选择显示 JSON 数据

javascript - 如何在字符串js中指定文本后插入字符?

javascript - 无法在 Firefox 中使用 Twitter 时间线?

javascript - 在循环 Javascript 中更改悬停样式

objective-c - 按两个标准对对象数组进行排序?

javascript - 如何通过多个相同的属性过滤对象数组