Какой самый надежный способ проверить, является ли переменная JavaScript нулевой?

Что такое надежный способ mos, если я хочу проверить, является ли переменная нулевой или нет?.

Существуют разные примеры:

if (null == yourvar)

if (typeof yourvar != 'undefined')

if (undefined != yourvar)

Ответ 1

Ничего из перечисленного.

Вы не хотите использовать == или его разнообразие, потому что выполняет тик-принуждение. Если вы действительно хотите проверить, явно ли что-то явно, используйте оператор ===.

И снова ваш вопрос показывает, возможно, некоторая ясность ваших требований. Вы действительно имеете в виду null; или подсчет undefined тоже? myVar === null обязательно скажет вам, является ли переменная нулевой, и это вопрос, который вы задали, но действительно ли это то, что вы хотите?

Обратите внимание, что в этом вопросе SO есть гораздо больше информации. Это не прямой дубликат, но он охватывает очень похожие принципы.

Ответ 2

Я предпочитаю

if (null == yourvar)

что позволяет избежать случайного присвоения в этом сценарии

if (yourvar = null)

Edit

JavaScript имеет как строгое, так и типовое преобразование равенства. Для строгого равенства сравниваемые объекты должны иметь один и тот же тип и:

* Two strings are strictly equal when they have the same sequence of characters, 
  same length, and same characters in corresponding positions.
* Two numbers are strictly equal when they are numerically equal (have the 
  same number value). NaN is not equal to anything, including NaN. 
  Positive and negative zeros are equal to one another.
* Two Boolean operands are strictly equal if both are true or both are false.
* Two objects are strictly equal if they refer to the same Object.

Нулевые и Undefined типы == (но не ===)

Прочитайте Операторы сравнения

Ответ 3

"undefined" не "null". Сравнить

  • ложка пуста (= null)
  • нет ложки (= undefined)

некоторые факты, которые могут помочь вам в дальнейшем

  • typeof undefined - "undefined"
  • typeof null - это "объект"
  • undefined считается равным (==) нулевому и наоборот
  • никакое другое значение не равно (==) ни null, ни undefined

Ответ 4

Если вам все равно, если он точно null или undefined или false или 0, и просто хотите увидеть, если он в основном "не установлен", вообще не используйте оператор:

if (yourVar)

Ответ 5

if (null == yourvar) а также if (typeof yourvar != 'undefined') делают совсем другие вещи. Предполагается, что переменная существует, а другая -. Я бы предложил не смешивать их вообще. Знайте, когда ожидать, что переменная справится с этим присутствием, прежде чем вы справитесь с его значением.