虽然我意识到每种语言都有自己的缩进约定,但我还是忍不住对最近发现的一些事情感到恼火。考虑 PHP 手册中的这段代码:
switch ($i) {
case "apple":
echo "i is apple";
break;
case "bar":
echo "i is bar";
break;
case "cake":
echo "i is cake";
break;
}
请注意,每个 case 都从 switch 语句中缩进。这是有道理的,因为代码更易于阅读,并且 block 的主体包含在其中的一层。
但是,当我在 JSLint 中测试等效的 JavaScript switch 语句时:
switch (i) {
case "apple":
alert("i is apple");
break;
case "bar":
alert("i is bar");
break;
case "cake":
alert("i is cake");
break;
}
...它显示一个错误,告诉我它应该这样显示:
switch (i) {
case "apple":
alert("i is apple");
break;
case "bar":
alert("i is bar");
break;
case "cake":
alert("i is cake");
break;
}
这似乎违反直觉,因为每个 case 现在都与 switch block 本身内联。我无法想象为什么这会被认为更好,更不用说触发错误了。
是 JSLint 出错了,还是只是遵循惯例?如果后者是正确的,为什么约定不缩进以清晰起见?
最佳答案
这是您的代码。格式化你想要的。使用 jsLint,但如果您不同意它的建议可以改进您的代码,请不要实现它们。 jsLint 伤害了你的感情。
关于PHP 与 JavaScript 切换缩进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4761293/