Я знаю, что ниже в JavaScript есть два способа проверить, является ли переменная нет null
, но я запутался, какой из этих методов лучше всего использовать.
Я должен делать:
if (myVar) {...}
или
if (myVar !== null) {...}
Я знаю, что ниже в JavaScript есть два способа проверить, является ли переменная нет null
, но я запутался, какой из этих методов лучше всего использовать.
Я должен делать:
if (myVar) {...}
или
if (myVar !== null) {...}
Ответы:
Они не эквивалентны. Первый выполнит блок, следующий за
if
оператором, еслиmyVar
он верен (то есть оценивается какtrue
в условном выражении ), а второй выполнит блок, еслиmyVar
любое другое значение, кромеnull
.Единственными значениями, которые не соответствуют действительности в JavaScript, являются следующие (иначе говоря, ложные значения):
null
undefined
0
""
(пустая строка)false
NaN
источник
Вот как вы можете проверить, не является ли переменная NULL:
if (myVar !== null) {...}
блок будет выполнен, если myVar не равен нулю .. он будет выполнен, если myVar не определено или ложно или
0
илиNaN
или что-то еще ..источник
("")
и неопределенную. Смотрите мою скрипку в качестве ссылки: jsfiddle.net/b0tm7yafПрочитайте этот пост: http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/
В общем, у него есть несколько полезных советов по JavaScript, но стоит упомянуть, что вы должны проверить на null, например:
В нем также упоминается то, что считается «ложью», что вы можете не осознавать.
источник
if(myVar) { code }
НЕ будет выполняться только когдаmyVar
равен:false, 0, "", null, undefined, NaN
или вы никогда не определяли переменнуюmyVar
(тогда дополнительно код останавливает выполнение и генерирует исключение).if(myVar !== null) {code}
НЕ будет выполняться только тогда, когдаmyVar
он равенnull
или вы его никогда не определяли (выдает исключение).Здесь у вас есть все ( SRC )
если
== (его отрицание ! = )
=== (это отрицание ! == )
источник
Есть еще один возможный сценарий, с которым я только что столкнулся.
Я сделал AJAX-вызов и получил данные как нулевые, в строковом формате. Я должен был проверить это так:
Итак, null - это строка, которая читается как «null», а не как «null».
РЕДАКТИРОВАТЬ: Следует понимать, что я не продаю это так, как это должно быть сделано. У меня был сценарий, где это был единственный способ сделать это. Я не уверен, почему ... возможно, парень, который написал back-end, неправильно представлял данные, но, тем не менее, это настоящая жизнь. Огорчительно видеть, что кто-то, кто понимает, что это не совсем правильно, голосует против этого, а потом - кто-то, кто действительно помогает.
источник
null
строками.value = JSON.parse(value)
а затем использовать простой и правильныйvalue != null
тестЕсли
myVar
NULL, тогда, если блок не выполняется, он будет выполнен.if (myVar != null) {...}
источник
'null'
, а специальное значениеnull
.Иногда, если это не было даже определено, лучше подготовиться. Для этого я использовал typeof
источник
Два условных утверждения, которые вы перечислите здесь, не лучше, чем одно другое. Ваше использование зависит от ситуации. Кстати, у вас есть опечатка во втором примере. После восклицательного знака должен быть только один знак равенства.
Первый пример определяет, является ли значение в myVar истинным, и выполняет код внутри {...}
Во 2-м примере оценивается , не равен ли myVar нулю, и если этот случай равен true, он выполнит ваш код внутри {...}
Я предлагаю взглянуть на условные утверждения для получения дополнительной техники. Как только вы ознакомитесь с ними, вы сможете решить, когда они вам понадобятся.
источник
=
имеет решающее значение и имеет огромное значение для вопроса. Возможно , вы не знаете о существовании!==
и===
операторов в JavaScript?