2015-12-29 1 views
1

У меня есть много поиска, и у меня есть несколько способов проверить, является ли утверждение истинным или ложным. Я обнаружил, что стандартная функция для проверки нулевых, неопределенных или пустых переменных заключается в использовании правдоподобного значения.Проверка Если утверждение истинно или ложно, используя javascript Truthy и Falsy Value VS '===' оператор

if(value) { } 

Is there a standard function to check for null, undefined, or blank variables in JavaScript?

Я также обнаружил, что '===' оператор лучше использовать более '==' оператора.

Which equals operator (== vs ===) should be used in JavaScript comparisons?

мне нужен короткий и сохранить путь сделать это. Теперь я смущаюсь с этими двумя решениями. Должен ли я следовать стандартным способам проверки утверждения, это истина или ложь, или мне нужно использовать оператор «===».

+3

Простой ответ был бы, _It зависит, что вы хотите compare_. Если это просто проверка значений 'true' /' false', то 'if (value)' достаточно хорошо. – Rayon

+1

Вы часто видите, что люди используют '==' в _JavaScript_, потому что они используются для синтаксиса с других языков. Тем не менее, большинство людей не знают о том, что '==' делает (даже если они прочитали спецификацию)] (http://es5.github.io/#x11.9.3), поэтому я бы посоветовал избегая этого; используйте '===' для сравнения и рассмотрения _type_ того, что вы пытаетесь сравнить, например. a _String_ не _Number_, поэтому они не равны –

+0

Возможный дубликат [имеет значение, который равен оператору (== vs ===) Я использую в сравнении JavaScript?] (http: // stackoverflow.com/questions/359494/does-it-matter-which-equals-operator-vs-i-use-in-javascript-сравнения) –

ответ

2

Стандарт при проверке, является ли значение null или undefined («пустым» в вашей терминологии) является использование x == null. Это коротко для x === null || x === undefined.

Вы обнаружите, что делает x === null фактически не работает для проверки undefined, поскольку

null == undefined // true 
null === undefined // false 

Существует разница между проверкой для «truthy» значения и проверки null или undefined. Однако значения null и undefined являются «ложными», поэтому если все, что вы хотите сделать, это проверить, существует ли ваша переменная и является «правдивой», то if(x) в порядке. Обратите внимание, что некоторые вещи, которые вы могли бы ожидать (без опыта) быть истинными/ложными, не являются. Например:

'' == true // false 
0 == true // false 

Тогда есть некоторые значения, которые не являются «правдивыми» или «ложными». Например:

NaN == true // false 
NaN == false // false 

Find a more complete list of weird stuff (and learn more about == vs ===) in this SO post.

< 3 JavaScript

+0

'NaN === NaN; // false', вы действительно можете проверить для _NaN_ довольно легко из-за этого, выполнив 'x! == x'. Также обратите внимание, что вы получаете странные причуды с '==' like '1 == {toString: x => '1'}; // true' –

+0

Да. Неясно, сосредоточен ли OP на 'null' /' undefined', 'true' /' false' или просто '=='/'==='. Если он больше заботится о '=='/'===', то обязательно посмотрите на вопрос, с которым я связан. –

2

использование === для сравнения значения, а также типа.

использование == для сравнения значениями только

// Example Program 
var a = "0"; 
var b = 0; 
console.log(a==b); // true 
console.log(a===b); // false 
+0

У вас есть источник цитируемой части вашего ответа? Я думаю, что он отлично справляется с основной задачей этой часто ошибочной проблемы. –

Смежные вопросы