PHP 与 JavaScript 切换缩进

标签 php javascript switch-statement conventions

虽然我意识到每种语言都有自己的缩进约定,但我还是忍不住对最近发现的一些事情感到恼火。考虑 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/

相关文章:

javascript - JavaScript 中变量的可见性

javascript - jQuery Deferred 的错误处理和恢复

c++ - 是否有任何编译器或选项可以触发对无意义和错误的 switch 语句的警告?

javascript - 两个图像 - 如果单击图像是否显示其他图像?

PHP:Postgres 数组和 pg_insert

php - 如何在 MySQL 中设置年份数据类型

javascript - 获取某个点附近的政治位置 - Google Maps API V3

arrays - 当我希望用户不要用相同的名字命名他/她选择的角色时,要实现什么控制流程?

php - MySQL 命令转换为 Yii create

php - 发布方法在网络服务中不起作用