繁体   English   中英

为什么 '[' + array + ']' 返回一个普通数组?

[英]Why does '[' + array + ']' return a normal array?

所以我只是在写一些代码,并意识到在数组周围添加方括号只会返回一个完整的正常数组,如下所示,

var arr = [1, 2, 3]
var addSquareBrackets = function(arr) {
    return '[' + arr + ']';
}

addSquareBrackets(arr); // <- returns [1, 2, 3] 

当在数组周围连接花括号时也会发生同样的事情。

var arr = [1, 2, 3]
var addCurlyBrackets = function(arr) {
    return '{' + arr + '}';
}

addCurlyBrackets(arr); // <- returns {1, 2, 3}

第一个示例返回 [1, 2, 3] 而不是 [[1, 2, 3]] 或第二个示例返回 {1, 2, 3} 而不是 {[1, 2, 3]}。 有人可以帮我理解为什么会这样吗?

使用+运算符,只要一侧有字符串,另一侧的任何表达式也会被强制转换为字符串。

Arrays,当被强制转换为字符串时,对它们调用.join(',')

 console.log(String([1, 2, 3]));

他们没有在结果周围添加[ ]数组分隔符 - 他们只是将普通值用逗号连接在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM