有什么区别,和+

时间:2013-10-21 11:10:59

标签: javascript

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

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]

4 个答案:

答案 0 :(得分:2)

在JavaScript中,+可用于concatenate strings。在此,+ab加在一起。

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