我记得在Douglas Crockford的"Javascript the Good Parts"一书中读到,由于自动分号插入,无块语句可能会出错.
if (condition)
foo = true;
Run Code Online (Sandbox Code Playgroud)
VS
if (condition)
{
foo = true;
}
Run Code Online (Sandbox Code Playgroud)
在第二个示例中,它将一致地工作,在第一个示例中,解释器将自动插入分号,并且可能导致代码中的歧义.道格拉斯指出,这可能很糟糕,很难调试,我同意这一点.但它让我想到有哪些例子编码"风格"实际上有语法含义?换句话说,未遵循某种缩进或明显样式的示例实际上会导致错误或错误.我认为Python有其重要的空白是一个例子,YML要求没有标签是另一个.
随意回答各种语言和习语.我很想知道范式案例.在你的回答中,我想知道编码风格或语法行为的内容和原因.我不想开始任何编码风格的火焰战争,只是事实情况下,不知情的人会被绊倒.
Javascript单独处理这两个案例.你必须使用第一个
return {
// code
}
return
{
// code
}
Run Code Online (Sandbox Code Playgroud)
如果你不这样,口译员会在错误的地方添加半冒号.我认为它会在条件之后提出一个.所以第二个被错误地读作.
return;
{
// code
}
Run Code Online (Sandbox Code Playgroud)
哪个语法无效.