Bre*_*ton 0 javascript syntax whitespace
在Java / C / C ++中(并且,除Python外,我能想到的所有其他语言)都将忽略空格。
我刚刚花了几个小时试图弄清楚为什么我在return语句中遇到错误。答案是空格。
所以这是我认为在功能上等效的两个代码段。
return { a:b, c:d};
return
{
a:b,
c:d
};
Run Code Online (Sandbox Code Playgroud)
但是我现在知道第一个可以工作,但是第二个可以在c:d行上引发错误。
有人可以解释为什么它们在语法上不相等吗?
这里的问题是JavaScript具有一个称为“ 自动分号插入”的“功能”。
因此,您的第二个代码段实际上是像这样执行的(请注意后面的分号return):
return;
{
a:b,
c:d
};
Run Code Online (Sandbox Code Playgroud)
基本上,您正在返回undefined,而不是对象文字。
JavaScript具有所谓的“不良部分”,您遇到了其中之一。我强烈建议您阅读有关该主题的书。
请参阅本文以获取有关自动分号插入的更多信息。
如果您仍然希望将代码的格式设置为与最初的格式类似,那么这可能是最适合您的选择:
return {
a:b,
c:d
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
564 次 |
| 最近记录: |