Я часто вижу код JavaScript, который проверяет неопределенные параметры и т.д. Таким образом:
if (typeof input !== "undefined") {
// do stuff
}
Это кажется расточительным, поскольку включает как поиск типов, так и сравнение строк, не говоря уже о его многословности. Это нужно потому, что undefined
можно было переименовать.
Мой вопрос:
Чем этот код лучше этого подхода:
if (null != input) {
// do stuff
}
Насколько я знаю, вы не можете переопределить null
, поэтому он не сломается неожиданно. И из-за приведения типов оператора !=
это проверяет как undefined
, так и null
... что часто именно то, что вам нужно (например, для необязательных параметров функции).
Тем не менее, эта форма не кажется широко распространенной, и она даже заставляет JSLint кричать на вас за использование оператора зла !=
.
Почему это считается плохим стилем?