2015-09-14 2 views
-1

Возможно несколько теоретический вопрос, но и проверить, если переменная существует или нет, это чаще всего советуют:JavaScript: разница между typeof (var) === 'undefined' vs == 'undefined'?

typeof(var)==='undefined' или typeof(var)!=='undefined'

Как это отличается от typeof(var)=='undefined' (или typeof(var)!='undefined')?

Я имею в виду === vs ==. Или !== vs !=. Я знаю, что это обычно означает сравнение типа, а также значение, но в этом случае typeof(something) всегда оценивает строку, не так ли?

Возможны ли какие-либо возможные случаи, когда typeof(var)==='undefined' и typeof(var)=='undefined' являются не такие же?

+1

Ответ на эту тему должен помочь уточнить ... http://stackoverflow.com/questions/359494/does-it-matter-which-equals-operator-vs-i-use-in-javascript-comparisons – Charlie74

+1

Вы правы. Некоторым людям нравится всегда использовать '===', чтобы быть последовательными (или они где-то читали, что' == '- чистое зло, и его следует избегать любой ценой). – pawel

+0

Быстрое примечание: 'typeof' - это оператор, а не функция. Вы можете опустить те скобки. – Oka

ответ

-1

Что касается части !=, то ! следует рассматривать как НЕ. typeof var !=='undefined' =>if typeof var is not undefined

+0

Спасибо, да, я знал, я просто задавался вопросом о различии между 'typeof var! == 'undefined'' и' typeof var! = 'undefined'', но, видимо, их нет. – RocketNuts

+0

Вопрос предпочтительнее, здесь просто. НО на некоторых языках правильно использовать '==' в выражении if, поскольку это проверяет, а только один набор '=' (всегда возвращает strue в if). Хорошо сказать им обособленно. – Makerimages

0

В действительности нет никакой разницы, поэтому typeof возвращает строку.

Используйте === и !==, если вы хотите избежать автоматических преобразований.

Примеры: '! =='!

alert(1!='1')//false 
alert(1!=='1')//true 
alert('1'!='1')//false 
alert('1'!=='1')//false 
alert(true==1)//true 
alert(true===1)//false 
0

'===' и операторы немного быстрее, поэтому в большинстве случаев они должны использоваться вместо '==' или»= ».

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