Хотя я понимаю, что у каждого языка есть своя конвенция для отступов, я не могу не раздражаться тем, что я недавно обнаружил. Рассмотрим этот код из руководства PHP:Отступ PHP-кода от JavaScript
switch ($i) {
case "apple":
echo "i is apple";
break;
case "bar":
echo "i is bar";
break;
case "cake":
echo "i is cake";
break;
}
Обратите внимание, что каждый случай имеет отступ от инструкции переключателя. Это имеет смысл, так как код легче читать, а тело блока содержит один уровень внутри него.
Однако, когда я проверить эквивалентное утверждение 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 ошибочным, или это просто следующее соглашение? Если последнее верно, почему конвенция не должна быть отступом для ясности?
JSLint на самом деле жалуется на подобные вещи? * -dies- * – BoltClock
JS & PHP не Python, используйте отступ, который вам нравится. – Shikiryu
Я бы использовал 'if ([" apple "," bar "," cake "]. IndexOf (i)! = -1) alert (" i is "+ i);';) – Gumbo