Я знаю, что ниже в 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) { }
В нем также упоминается то, что считается «ложью», что вы можете не осознавать.
if(myVar) { code }
НЕ будет выполняться только когда myVar
равен: false, 0, "", null, undefined, NaN
или вы никогда не определяли переменную myVar
(тогда дополнительно код останавливает выполнение и генерирует исключение).if(myVar !== null) {code}
НЕ будет выполняться только тогда, когда myVar
он равен null
или вы его никогда не определяли (выдает исключение).Здесь у вас есть все ( SRC )
если
== (его отрицание ! = )
=== (это отрицание ! == )
Есть еще один возможный сценарий, с которым я только что столкнулся.
Я сделал AJAX-вызов и получил данные как нулевые, в строковом формате. Я должен был проверить это так:
if(value != 'null'){}
Итак, null - это строка, которая читается как «null», а не как «null».
РЕДАКТИРОВАТЬ: Следует понимать, что я не продаю это так, как это должно быть сделано. У меня был сценарий, где это был единственный способ сделать это. Я не уверен, почему ... возможно, парень, который написал back-end, неправильно представлял данные, но, тем не менее, это настоящая жизнь. Огорчительно видеть, что кто-то, кто понимает, что это не совсем правильно, голосует против этого, а потом - кто-то, кто действительно помогает.
null
строками.
value = JSON.parse(value)
а затем использовать простой и правильный value != null
тест
Если myVar
NULL, тогда, если блок не выполняется, он будет выполнен.
if (myVar != null) {...}
'null'
, а специальное значение null
.
Два условных утверждения, которые вы перечислите здесь, не лучше, чем одно другое. Ваше использование зависит от ситуации. Кстати, у вас есть опечатка во втором примере. После восклицательного знака должен быть только один знак равенства.
Первый пример определяет, является ли значение в myVar истинным, и выполняет код внутри {...}
Во 2-м примере оценивается , не равен ли myVar нулю, и если этот случай равен true, он выполнит ваш код внутри {...}
Я предлагаю взглянуть на условные утверждения для получения дополнительной техники. Как только вы ознакомитесь с ними, вы сможете решить, когда они вам понадобятся.
=
имеет решающее значение и имеет огромное значение для вопроса. Возможно , вы не знаете о существовании !==
и ===
операторов в JavaScript?