Отступы переключателей PHP и JavaScript

Хотя я понимаю, что каждый язык имеет свое собственное соглашение об отступах, меня не может не раздражать то, что я недавно обнаружил. Рассмотрим следующий код из руководства по PHP:

switch ($i) {
    case "apple":
        echo "i is apple";
        break;
    case "bar":
        echo "i is bar";
        break;
    case "cake":
        echo "i is cake";
        break;
}

Обратите внимание, что каждый регистр имеет отступ от оператора switch. В этом есть смысл, поскольку код легче читать, а тело блока находится на одном уровне внутри него.

Однако, когда я тестирую эквивалентный оператор переключения JavaScript в JSLint:

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;
}

Это кажется нелогичным, поскольку каждый случай теперь встроен в сам блок переключателей. Я не могу представить себе причину, по которой это будет считаться лучше, не говоря уже о том, чтобы вызвать ошибку.

Является ли JSLint ошибочным или это просто следование соглашению? Если последнее верно, то почему бы по соглашению не использовать отступ для ясности?

11
задан claviska 21 January 2011 в 16:36
поделиться