Я знаю, что ниже представлены два способа в JavaScript проверить, не является ли переменная null
, но я не понимаю, что лучше всего использовать.
Я должен делать:
if (myVar) {...}
or
if (myVar !== null) {...}
Я знаю, что ниже представлены два способа в JavaScript проверить, не является ли переменная null
, но я не понимаю, что лучше всего использовать.
Я должен делать:
if (myVar) {...}
or
if (myVar !== null) {...}
Они не эквивалентны. Первый выполнит блок, следующий за оператором if
, если myVar
является истинным (т. Е. Оценивается как true
в условном выражении), а второй выполнит блок, если myVar
- любое значение, отличное от null
.
Единственными значениями, которые не соответствуют действительности в JavaScript, являются следующие (также известные как ложные значения):
null
undefined
0
""
(пустая строка)false
NaN
Вот как вы можете проверить, не является ли переменная NULL:
if (myVar !== null) {...}
блок будет выполнен, если myVar не равен нулю .. он будет выполнен, если myVar не определен, или false, или 0
, или NaN
, или что-то еще ..
("")
и undefined. См. Мою скрипку как ссылку: jsfiddle.net/b0tm7yaf
- person Barrosy; 18.01.2019
Прочтите этот пост: 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 и получил данные как null в строковом формате. Пришлось проверить вот так:
if(value != 'null'){}
Итак, null - это строка, которая читается как «null», а не на самом деле null.
РЕДАКТИРОВАТЬ: Следует понимать, что я не продаю это так, как это должно быть сделано. У меня был сценарий, в котором это было единственное, что можно было сделать. Я не уверен, почему ... возможно, парень, который написал серверную часть, неправильно представлял данные, но, тем не менее, это реальная жизнь. Прискорбно видеть, что за это проголосовал кто-то, кто понимает, что это не совсем правильно, а затем проголосовал за кого-то, что действительно помогает.
null
.
- person Bergi; 03.03.2015
value = JSON.parse(value)
, а затем использовать простой и правильный value != null
тест.
- person Bergi; 03.03.2015
Иногда, если он даже не определен, лучше подготовиться. Для этого я использовал typeof.
if(typeof(variable) !== "undefined") {
//it exist
if(variable !== null) {
//and is not null
}
else {
//but is null
}
}
else {
//it doesn't
}
если myVar
имеет значение null, тогда, если блок не выполняется, в противном случае он будет выполнен.
if (myVar != null) {...}
'null'
, а специальное значение null
.
- person Micah Walter; 05.11.2018
if (0) означает false
, if (-1 или любое другое число, кроме 0) означает true
. следующее значение не соответствует действительности, null, undefined, 0, (пустая строка), false, NaN
никогда не используйте числовой тип, такой как id, как
if (id) {}
для типа id с возможным значением 0 мы не можем использовать if (id) {}, потому что if (0) будет означать ложный, недопустимый, что, как мы хотим, означает действительный как истинный номер идентификатора.
Итак, для типа id мы должны использовать следующее:
if ((Id !== undefined) && (Id !== null) && (Id !== "")) {
} else {
}
для другого строкового типа мы можем использовать if (string) {}, потому что null, undefined, пустая строка будут оцениваться как false, что правильно.
if (string_type_variable) { }
Перечисленные здесь два условных оператора не лучше друг друга. Ваше использование зависит от ситуации. У вас, кстати, опечатка во 2-м примере. После восклицательного знака должен стоять только один знак равенства.
В первом примере определяется, истинно ли значение в myVar, и выполняется код внутри {...}
Во втором примере проверяется, не равно ли myVar null, и если этот случай верен, ваш код будет выполняться внутри {...}
Я предлагаю взглянуть на условные операторы, чтобы получить больше техник. Ознакомившись с ними, вы сможете решить, когда они вам понадобятся.
=
имеет решающее значение и имеет огромное значение для вопроса. Возможно, вы не знаете о существовании операторов !==
и ===
в JavaScript?
- person Tim Down; 06.12.2010