Я часто бачу код JavaScript, який перевіряє невизначені параметри і т.д. таким чином:
if (typeof input !== "undefined") {
// do stuff
}
Це здається марнотратним, оскільки воно включає як пошук типу, так і рядкове порівняння, не кажучи вже про його багатослівність. Це потрібно, тому що undefined
його можна перейменувати.
Моє запитання:
Як цей код краще, ніж цей підхід:
if (null != input) {
// do stuff
}
Наскільки я знаю, ви не можете переосмислити null
, тож несподівано це не вийде. І через тиск примусу !=
оператора, це перевіряє як undefined
і null
..., що часто саме те, що ви хочете (наприклад, для додаткових параметрів функції).
Але ця форма не здається широко розповсюдженою, і вона навіть змушує JSLint кричати на вас за те, що ви використовуєте злий !=
оператор.
Чому це вважається поганим стилем?
if (null != input)
є лише "Yoda Speak" для англійського мовця (з одного я .... uuammmmm), тож якщо вони прирівнюють до одного і того ж, це справді просто семантика. ІМХО.