2009-11-13 13 views

cevap

13

Yok:

ayrılmakta örneği vardır.

it performs type coercion, == veya bunların çeşitliliğini kullanmak istemezsiniz. Gerçekten bir şeyin açık olup olmadığını kontrol etmek isterseniz, === operatörünü kullanın. Daha sonra, sorunuz yine de ihtiyaçlarınızda bazı açıklık eksikliklerini göstermektedir. Aslında null'u kastediyorsunuz; veya undefined da sayıyor mu? myVar === null, değişkenin boş olup olmadığını size kesinlikle söyleyecektir, sorduğunuz soru budur, ama bu gerçekten istediğiniz nedir?

this SO question adresinde daha fazla bilgi olduğunu unutmayın. Doğrudan bir çoğaltma değil, aynı ilkeleri kapsar.

+0

Boş ve Tanımsız türler == (ancak değil ===). – rahul

+0

https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Comparison_Operators – rahul

+0

Bağlantı adamantium için teşekkürler, cevabımın içine eklendi. –

4

Ben

if (yourvar = null) 

Düzenleme

JavaScript sıkı ve türünü dönüşüm eşitlik karşılaştırma hem sahip bu senaryoda kazayla atama önler

if (null == yourvar) 

tercih ederim.

* Two strings are strictly equal when they have the same sequence of characters, 
    same length, and same characters in corresponding positions. 
* Two numbers are strictly equal when they are numerically equal (have the 
    same number value). NaN is not equal to anything, including NaN. 
    Positive and negative zeros are equal to one another. 
* Two Boolean operands are strictly equal if both are true or both are false. 
* Two objects are strictly equal if they refer to the same Object. 

Boş ve Tanımsız tipleri == edilir (ancak ===)

Oku Comparison Operators

+0

Aşağı oy için herhangi bir sebep var mı? – rahul

+0

@adamantium: lütfen düzenle. Downvote'ımdan bu yana çok şey eklediniz;) Asıl olarak, şu anda çözdüğünüz soruların hedefini (undefined'ten kaçınarak) tamamen özlediniz. –

0
: sıkı eşitlik için karşılaştırılan nesneler aynı tür ve olmalıdır

Tam olarak null veya undefined veya false veya 0 olup olmadığını umursamıyorsanız ve temelde "unset" olup olmadığını görmek istiyorsanız, hiç bir operatör kullanmayın:

+1

Bunun tek sorunu şudur: Eğer 'YourVar' 0 ya da '0' ya da boş bir dize ya da muhtemelen başka bir sürü şey ayarlanmışsa, o zaman hala 'false' olacaktır. Yani genel olarak ayarlanmış olup olmadığını kontrol etmek için çok kötü bir yoldur; sadece ** bilirseniz ** mümkün olan tüm değerler * falsy * değildir. –

+0

Evet. Ancak, hem null hem de undefined yukarılara kıyasla bahsettiğinden bahsettiğim için, bir şeyleri _objecty_ yaptığını ve gerçekten bu konular hakkında endişelenmem gerektiğini varsayıyorum. –

1

"undefined", "null" değil.kaşık boş

  • karşılaştırın (= null)
  • ayrıca

    • typeof tanımlanmamış "tanımsız (tanımsız =) hiçbir kaşık

    size yardımcı olabilecek bazı gerçekleri var "

  • typeof null" object "
  • undefined (==) to nul olarak kabul edilir L ve tersi
  • başka bir değer sıfır veya
0

if (null == yourvar) ve if (typeof yourvar != 'undefined') çok farklı şeyler tanımlanmamış herhangi birine (==) eşittir. Biri değişkenin var olduğunu varsayar, diğeri. İkisini karıştırmamayı öneririm. Değişkenle ne zaman uğraşacağını, onun değerinin üstesinden gelmeden varlığının ne zaman olduğunu düşünün.

İlgili konular