Я знаю, що нижче є два способи в JavaScript, щоб перевірити, чи не є змінною null, але я розгублений, яка найкраща практика для використання.
Чи варто робити:
if (myVar) {...}
або
if (myVar !== null) {...}
Я знаю, що нижче є два способи в JavaScript, щоб перевірити, чи не є змінною null, але я розгублений, яка найкраща практика для використання.
Чи варто робити:
if (myVar) {...}
або
if (myVar !== null) {...}
Відповіді:
Вони не рівнозначні. Перший буде виконувати блок, наступний за ifтвердженням, якщо він myVarє truthy (тобто оцінюється trueяк умовний), а другий буде виконувати блок, якщо myVarє якесь значення, відмінне від null.
Єдиними значеннями, які не є надійними в JavaScript, є такі (також фальшиві значення):
nullundefined0"" (порожній рядок)falseNaNОсь як можна перевірити, чи змінна не 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?