字符串文字连接。这个语法在JS中意味着什么?

时间:2015-06-29 00:57:22

标签: javascript

我刚刚在我的JS代码中发现了一个不错的错误,我从C ++移植过来了:

var x = "aaa"
        "bbb";

//In C++: x="aaabbb" 
//In JS: x="aaa" 

令人惊讶的是没有错误(在node.js中)。

JS如何处理" bbb"?

3 个答案:

答案 0 :(得分:3)

javascript中不需要使用分号来结束语句。这些语句被解释为set x"aaa"并执行下一个语句"bbb",它只是一个任意字符串。

您可以将其视为自动插入的分号,因此语句变为

var x = "aaa";"bbb";

答案 1 :(得分:2)

JavaScript在第一行之后插入分号。

所以,你真正做的是

var  x = "aaa";
         "bbb";

它评估第一行,它分配" aaa"到x然后评估第二行没有分配" bbb"任何事情。

您可能希望查看有关JS中分号插入规则的this question

答案 2 :(得分:2)

它没有处理它。会发生什么是JavaScript会为你插入一个分号,而"bbb"只是一个表达式:

var x = "aaa"; // JS inserts this semicolon
"bbb"; // this is a valid expression but does nothing

此功能称为ASI。如果你放一个+它将连接字符串:

var x = "aaa" +
        "bbb";