我也听说 Go 也插入了它们,但他们采用了不同的方法
Javascript 在解释时如何插入分号?
我发现的最重要的事情之一是,假设您有一个返回坐标(或任何对象)的函数,类似于此。
function getCoordinates() {
return
{
x: 10,
y: 10
};
}
您会期望取回一个对象吗?错误的!你回来未定义。解释器将代码转换成这个
function getCoordinates() {
return;
{
x: 10,
y: 10
};
}
因为return
它本身就是一个有效的陈述。您需要确保将返回写如下
function getCoordinates() {
return {
x: 10,
y: 10
};
}
Javascript 在可能的任何换行符处假定语句结束。例如这个:
return
true;
被解释为:
return;
true;
将 return 和它的参数变成两个单独的语句,这当然意味着该函数没有返回值(返回未定义)。
不久前,我写了一篇关于此的博客文章。
教会我这个特殊功能的陷阱的例子是“最奇怪的语言功能?”中的这个例子。问题。(这就是我为什么要重新提出这个问题的原因,顺便说一下——这是一个宝贵的学习资源。)
好的参考资料可以在这里找到:Javascript的自动分号插入规则是什么?