Ответ 1
Это выражение. Это эквивалентно написанию
0 === 1;
Вы пишете выражение с немедленными побочными эффектами и считаете плохим.
В общем случае выражения являются бесполезными утверждениями, которые не имеют побочного эффекта. Он считал лучшей формой просто сделать
if (s === "test") {
MyFunc();
} else {
MyFunc2();
}
Кроме того, это совершенно прочный синтаксис. Я лично соглашаюсь с тем, что писать краткий тернар в качестве альтернативы if
является плохим, и вам лучше использовать его только для назначения.
Другое выражение короткой руки, которое было (ab) использовано для краткости
someCondition && doMagic(magic);
someCondition || doMagic(magic);
Опять же, они считаются плохими, если они используются только как выражения, потому что использование этих методов просто скрывает логику и затрудняет сохранение кода.
JSHint имеет для этого опцию expr
. См. билет
Продолжительность:
/*jshint
expr: true
*/
var s, MyFunc, MyFunc2;
s === "test" ? MyFunc() : MyFunc2();
0 === 1;
Пройдет