на самом деле, лучший подход - проверить, является ли значение falsy
, и на основе MDN это список ложных значений:
- false Ключевое слово false
- 0 Нулевое число
- 0n BigInt, при использовании в качестве логического значения, следует тому же правилу, что и Number. 0n это ложь. "", '', ``
Это пустая строка (длина строки равна нулю). Строки в JavaScript могут быть определены с помощью двойных кавычек "", одинарных кавычек '' или литералов шаблона ``.
null null - отсутствие любого значения
- undefined undefined - значение примитива
- NaN NaN - не число
, поэтому в зависимости от кода вы можете просто:
if (!x) { // check for all the falsy values.
// do stuff with x
}
с другой стороны, вы спрашиваете разницу !=
и !==
, хорошо взяв несколько примеров, вы можете увидеть разницу:
0 == false // true, because false is equivalent of 0
0 === false // false, because both operands are of different type
2 == "2" // true, auto type coercion, string converted into number
2 === "2" // false, since both operands are not of same type
, как упомянуто в комментарии @VLAZ, эти случаи будет работать, только если переменная x
определена, в противном случае у вас будет следующая ошибка:
"Uncaught ReferenceError: x не определено"
, поэтому на вашем В этом случае вы можете использовать только !=
, потому что вы будете сравнивать string
с string
и вам не придется проверять, была ли переменная создана или нет.
if (typeof x != "undefined") {
// do stuff with x
}