Это зависит от того, что вы должны делать с переменной. null
может быть или не быть вполне приемлемым значением, в зависимости от контекста (но я должен признать, что я никогда не думал о хорошем использовании null
в javascript). Вероятно, самым безопасным является использование исключений для выявления проблем, когда что-то идет не так, вместо того, чтобы пытаться предвидеть ошибки, проверяя наличие переменных.
С другой стороны, если вы сравниваете что-то с null
или undefined
, рекомендуется использовать оператор ===
, который не требует приведения типов.
Более простая проверка if(variable)
проверит, что variable
не является ложным (то есть, это не null
, undefined
, false
, 0
, NaN
, -0
или пустая строка).
Наконец, метод hasOwnProperty
часто полезен, когда вы хотите зациклить свойства объекта и исключить свойства, унаследованные от прототипа.
РЕДАКТИРОВАТЬ Обратите внимание, что вышесказанное относится к неопределенным переменным, то есть переменным, которые объявлены как
var variable;
, но им не присвоены какие-либо значения или отсутствуют параметры в функциях. Можно также рассмотреть случай обращения с переменными, которые вообще не объявлены. В этом случае все тесты типа
if(variable);
if(variable === null);
и т. Д. Потерпит неудачу, сообщив об ошибке. Единственный безопасный способ справиться с этим делом - это проверить тип переменной. То есть оператор typeof
может аккуратно обрабатывать переменные, которые не существуют.
if(typeof variable === 'undefined')
будет истинным, если либо
variable
было объявлено, но не определено, или
variable
не был объявлен вообще.
Ни в коем случае эта последняя проверка не вызовет ошибку.