0

我也听说 Go 也插入了它们,但他们采用了不同的方法

Javascript 在解释时如何插入分号?

4

3 回答 3

13

我发现的最重要的事情之一是,假设您有一个返回坐标(或任何对象)的函数,类似于此。

function getCoordinates() {
    return
        {
            x: 10,
            y: 10
        };
}

您会期望取回一个对象吗?错误的!你回来未定义。解释器将代码转换成这个

function getCoordinates() {
    return;
        {
            x: 10,
            y: 10
        };
}

因为return它本身就是一个有效的陈述。您需要确保将返回写如下

function getCoordinates() {
    return {
            x: 10,
            y: 10
        };
}
于 2010-10-29T17:13:44.373 回答
4

Javascript 在可能的任何换行符处假定语句结束。例如这个:

return
true;

被解释为:

return;
true;

将 return 和它的参数变成两个单独的语句,这当然意味着该函数没有返回值(返回未定义)。

不久前,我写了一篇关于此的博客文章

于 2010-10-29T17:13:24.203 回答
2

教会我这个特殊功能的陷阱的例子是最奇怪的语言功能?”中的这个例子。问题。(这就是我为什么要重新提出这个问题的原因,顺便说一下——这是一个宝贵的学习资源。)

好的参考资料可以在这里找到:Javascript的自动分号插入规则是什么?

于 2010-10-29T17:08:27.840 回答