Я знаю, що нижче є два способи в JavaScript, щоб перевірити, чи не є змінною null
, але я розгублений, яка найкраща практика для використання.
Чи варто робити:
if (myVar) {...}
або
if (myVar !== null) {...}
Я знаю, що нижче є два способи в JavaScript, щоб перевірити, чи не є змінною null
, але я розгублений, яка найкраща практика для використання.
Чи варто робити:
if (myVar) {...}
або
if (myVar !== null) {...}
Відповіді:
Вони не рівнозначні. Перший буде виконувати блок, наступний за if
твердженням, якщо він myVar
є truthy (тобто оцінюється true
як умовний), а другий буде виконувати блок, якщо myVar
є якесь значення, відмінне від null
.
Єдиними значеннями, які не є надійними в JavaScript, є такі (також фальшиві значення):
null
undefined
0
""
(порожній рядок)false
NaN
Ось як можна перевірити, чи змінна не NULL:
if (myVar !== null) {...}
блок буде виконуватися , якщо MYVAR не порожній .. це буде виконуватися , якщо MYVAR не визначене або хибним або 0
або NaN
або що - небудь ще ..
Прочитайте у цьому дописі: http://enterprisejquery.com/2010/10/how-good-c-habits-can-encourage-bad-javascript-habits-part-2/
У ньому є декілька приємних порад щодо JavaScript в цілому, але одне, що він згадує, - це те, що ви повинні перевірити наявність нуля, як:
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.
EDIT: Слід розуміти, що я продаю це не так, як це слід робити. У мене був сценарій, коли це було єдиним способом зробити це. Я не впевнений, чому ... можливо, хлопець, який написав бек-енд, подав дані неправильно, але незалежно, це справжнє життя. Розчаровувати це заперечуючим голосом хтось, хто розуміє, що це не зовсім правильно, а потім хтось, хто це насправді допомагає, засмучує.
null
струнами.
value = JSON.parse(value)
а потім скористатися простим і правильним value != null
тестом
якщо myVar
нуль, то, якщо блок не виконує інше, він виконає.
if (myVar != null) {...}
'null'
, а особливе значення null
.
Дві умовні заяви, які ви перераховуєте тут, не кращі один за одного. Ваше використання залежить від ситуації. У вас є друкарська помилка, до речі, у 2-му прикладі. Після знака оклику повинен бути лише один знак рівності.
Перший приклад визначає, чи є значення в myVar істинним, і виконує код всередині {...}
Другий приклад оцінює, якщо myVar не дорівнює нулю, і якщо цей випадок є істинним, він виконає ваш код всередині {...}
Я пропоную ознайомитись із умовними твердженнями для отримання більшої кількості прийомів. Ознайомившись з ними, ви можете вирішити, коли вони вам потрібні.
=
є вирішальною і має величезне значення у питанні. Можливо, ви не знаєте про існування !==
та ===
операторів у JavaScript?