Ответ 1
Обратите внимание, что если это лучше всего в практике, это дискуссионно, но если вы хотите, чтобы он работал с JSLint, вы могли бы сделать это
showTitles = (showTitles !== undefined) ? showTitles : 'Y';
Я закодировал следующее:
showTitles = (typeof showTitles !== 'undefined') ? showTitles : 'Y';
showSelectGroup = (typeof showSelectGroup !== 'undefined') ? showSelectGroup : 'Y';
Но JSLint говорит:
Предупреждение 3 JS Lint: Неожиданный тип. Используйте '===' для сравнения непосредственно с undefined.
Как мне изменить код?
Обратите внимание, что если это лучше всего в практике, это дискуссионно, но если вы хотите, чтобы он работал с JSLint, вы могли бы сделать это
showTitles = (showTitles !== undefined) ? showTitles : 'Y';
Возможно, используя
showTitles = (showTitles === undefined) ? 'Y' : showTitles;
showSelectGroup = (showSelectGroup === undefined) ? 'Y' : showSelectGroup;
jslint не имеет проблем с этим (предполагается, что showTitles и showSelectGroup объявлены с помощью var)
Однако я бы написал его как
var showTitles = showTitles || 'Y';
var showSelectGroup = showSelectGroup || 'Y';
Это сообщение отражает новейшие передовые методы. Что касается строгого режима ES5, глобальное значение undefined
больше не может быть изменено, а прямое сравнение - это более простой код и быстрее. Короче говоря, JSLint знает обо всем этом и дает вам хороший совет.
В этом случае измените typeof showTitles !== 'undefined'
на showTitles === undefined
.