我问这个是因为在AngularJS中,我们可以做到
$routeProvider
.when("/", {
templateUrl: "pages/main.html",
controller: "mainController"
})
.when("/second", {
templateUrl: "pages/second.html",
controller: "secondController"
})
同样,我们可以做到
bar = {
value: 123,
print: function() {
console.log(this.value)
}
}
bar
.print()
,它将被调用为bar.print()
但另一方面,以下内容:
function foo() {
return
{
a: 123
}
}
console.log(foo())
将在return
之后插入分号的JavaScript解释器有一个微妙的错误,因此将其视为
return; // <-- returning nothing, which means undefined
{
a: 123
}
还有一个案例是:
a = 3
+4
console.log(a)
a = 3;
+4
console.log(a)
第一个a
实际上将其视为3 + 4
,而第二个案例a
,它可以将+4
作为一个评估为{{1}的语句并且什么都不做。
为什么以这种方式插入分号,而在此问题的开头,该代码有2个,3个或更多空行,但4
仍然可以连接回对象?这个规则是什么?