我刚刚在我的JS代码中发现了一个不错的错误,我从C ++移植过来了:
var x = "aaa"
"bbb";
//In C++: x="aaabbb"
//In JS: x="aaa"
令人惊讶的是没有错误(在node.js中)。
JS如何处理" bbb"?
答案 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";