在字符串连接中,我们可以使用以下内容:
var a = 'Something', b = 'Something else';
console.log(a + b);
VS
console.log(a , b);
这里有什么不同吗?
更新
我没有得到我期待的答案。让我详细说明一下。如果我在chrome控制台中运行此代码。我得到了不同的结果:
var a = {a: 'aa'};
var b = {b: 'bb'};
console.log(a, b);
Object {a: "aa"} Object {b: "bb"}
console.log(a + b);
[object Object][object Object]
答案 0 :(得分:2)
在JavaScript中,+
可用于concatenate strings。在此,+
将a
和b
加在一起。
console.log("Hello" + "world") // "Helloworld"
使用,
来记录两个变量,用空格分隔:
console.log("Hello", "world") // "Hello world"
如果我们使用数字而不是字符串,差异是显而易见的:
console.log(1 + 1) // 2
console.log(1, 1) // 1 1
更新了我的问题,请您解释一下这种行为。
在对象上使用+
时,首先将它们转换为字符串然后连接。转换为字符串时,对象变为[object Object]
。使用+
连接两个对象将输出[object Object][object Object]
。
用逗号分隔对象记录每个单独的对象(及其所有方法和属性)。不会发生字符串转换。
答案 1 :(得分:2)
a + b
连接两个字符串(或添加两个数字)
,
中的console.log(a, b)
将两个单独的参数传递给函数,在var a, b
中声明了两个变量。
,
是一个具有不同用途的分隔符,具体取决于上下文,+
是连接/加法运算符。
比较
Math.max(1 + 2) // 3, because you're passing one argument
Math.max(1, 2) // 2, because you're passing two arguments
答案 2 :(得分:1)
这里有什么不同吗?
是的......他们完全和完全不同。虽然a + b
添加了两个变量(在字符串的情况下实现为连接),但a, b
不是字符串连接。你只是将两个参数传递给console.log
,它接受任意数量的参数并输出它们。
答案 3 :(得分:1)
console.log(2+3); //concatenates two strings
console.log(2,3); // separate strings
OUTPUT
5
2 3