为什么我们可以在JavaScript中使用点符号几个空行?

时间:2016-01-27 14:35:22

标签: javascript angularjs

我问这个是因为在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仍然可以连接回对象?这个规则是什么?

样品:
https://jsfiddle.net/g1gsnmfr/5/

0 个答案:

没有答案