Просто начал использовать jslint, чтобы проверить мой код JavaScript.Это указало, что я должен заменить
result = value ? value : defaultValue;
на
result = value || defaultValue;
Я подумал, что это хороший ярлык, и попытался применить принцип к вызовам методов для потенциально нулевых переменных, поэтому вместо:
if (arg) {
arg.doSomething();
}
Я пытался:
arg && arg.doSomething();
Последний отлично работает в браузере, но jslint жалуется на «Ожидается вызов присваивания или функции и вместо этого он видит выражение».
Последнее утверждение является плохим, неправильным, опасным или jslint чрезмерно защищает?Использование var dummy = arg && arg.doSomething();
действительно заставляет сообщение уходить просто глупо.