Javascript 使用逗号运算符添加值时,为什么console.log会在我的句子末尾添加空格?

Javascript 使用逗号运算符添加值时,为什么console.log会在我的句子末尾添加空格?,javascript,Javascript,这个问题几乎不值得问,但我在这里 参考上面的问题,下面是代码和输出 var端口=3000 console.log(“监听端口”,端口) 输出“监听端口3000” 注意这里的额外空间。为什么会发生这种情况?应该在做什么 console.log("Listening on port " + port) 正如(我认为)它可能将参数视为一个数组,从而将其与默认分隔符连接在一起,默认分隔符是一个空格,方法log将Javascript对象列表作为参数 console.log(obj1[,obj2,…,o

这个问题几乎不值得问,但我在这里

参考上面的问题,下面是代码和输出

var端口=3000

console.log(“监听端口”,端口)

输出
“监听端口3000”

注意这里的额外空间。为什么会发生这种情况?

应该在做什么

 console.log("Listening on port " + port)
正如(我认为)它可能将参数视为一个数组,从而将其与默认分隔符连接在一起,默认分隔符是一个空格,方法
log
将Javascript对象列表作为参数

console.log(obj1[,obj2,…,objN)

在文档中你是对的,它说对象是附加在一起的,但它没有说分隔符是一个空格

obj1…objN要输出的JavaScript对象列表。字符串 这些对象中的每个对象的表示都附加在 列出订单并输出


根据大众需求,从评论中复制:

因为console.log就是这么做的。不妨问问为什么它会打印在控制台上,而不是把浴室漆成蓝色。(因为后者不是它所做的)。:)如果你不想要空间,请使用+运算符将字符串缝合在一起

原因很可能是,
console.log
,至少在图形客户机中,具有内联显示对象和数组的能力。这使得显示的结果实际上不是一个字符串,而是一个表,空间将每个单元格与另一个单元格分开。因此,每个参数都是单独显示的


此外,考虑到
console.log
用于调试,
console.log(i,j,a[i][j],a[i][j]/2)
显示
3724.712.35
3724.712.35
和编写
console.log(i+'+j+'+a[i][j]+'+a[i][j]/2)相比,并不是那么有用
很烦人。我年轻的时候就已经受够了Java的影响。

去掉字符串中的空格,
console.log
已经为你做了。因为这就是
console.log
所做的。不妨问问为什么它会打印在控制台上,而不是把浴室涂成蓝色。(因为后者不是它所做的)(:)如果你不想要空格,就用
+
操作符把字符串缝合在一起。@Amadan Lol很公平。这实际上就是我想要的答案。我理解
+
之间的区别,我不想知道如何更正它。只是为什么会这样。不过要感谢其他人。不太清楚。arGments是独立的,不是连接的。通过对象参数,
console.log
可以显示对象的结构。显示的东西实际上不是一个字符串,而是更像一个表,你可以看到单元格之间的无形填充:)@Amadan如果你把两个注释组合在一起给出一个答案,我会很高兴看到除了这个,我一直在寻找答案。