-4

在字符串连接中,我们可以使用以下内容:

var a = 'Something', b = 'Something else';
console.log(a + b);

对比

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]
4

4 回答 4

2

在 JavaScript 中,+可用于连接字符串。在这里,+加入ab在一起。

console.log("Hello" + "world") // "Helloworld"

使用 a,代替记录两个变量,用空格分隔:

console.log("Hello", "world") // "Hello world"

如果我们使用数字而不是字符串,区别就很明显了:

console.log(1 + 1) // 2
console.log(1, 1)  // 1 1

编辑:

更新了我的问题,请您解释一下这种行为。

当您+在对象上使用时,它们首先被转换为字符串,然后被连接起来。当转换为字符串时,对象变为[object Object]. +用于连接两个对象将输出[object Object][object Object].

用逗号分隔对象会记录每个单独的对象(及其所有方法和属性)。不发生字符串转换。

于 2013-10-21T11:14:34.543 回答
2

a + b连接两个字符串(或添加两个数字)。
,inconsole.log(a, b)将两个单独的参数传递给函数, invar a, b声明了两个变量。

,是根据上下文使用不同的分隔符,+是连接/加法运算符。

相比:

Math.max(1 + 2) // 3, because you're passing one argument
Math.max(1, 2)  // 2, because you're passing two arguments
于 2013-10-21T11:14:34.937 回答
1

这里有什么区别吗?

是的……它们完全不同。虽然a + b添加两个变量(在字符串的情况下实现为连接),但不是a, b字符串连接。您只需将两个参数传递给,它接受任意数量的参数并输出它们。console.log

于 2013-10-21T11:14:26.163 回答
1
 console.log(2+3); //concatenates two strings
 console.log(2,3); // separate strings


OUTPUT

5
2 3
于 2013-10-21T11:15:14.273 回答