23 Soru: Değişkenin 'tanımsız' veya 'null' olup olmadığı nasıl belirlenir?

tarafından oluşturulan soru Fri, May 6, 2016 12:00 AM

Değişkenin undefined veya null olup olmadığını nasıl belirlerim? Kodum şöyle:

 
var EmpName = $("div#esd-names div#name").attr('class');
if(EmpName == 'undefined'){
  //DO SOMETHING
};
 
<div id="esd-names">
  <div id="name"></div>
</div>

Ancak bunu yaparsam, JavaScript yorumlayıcısı yürütmeyi durdurur.

    
1867
  1. 2018-12-04 09: 29: 39Z
23 Yanıtlar                              23                         

soyut eşitlik özelliklerini kullanabilirsiniz operatörün bunu yapması için :

 
if (variable == null){
    // your code here.
}

null == undefined doğru olduğundan, yukarıdaki kod hem null'u hem de undefined'u yakalayacaktır.

    
2558
2017-07-20 20: 11: 03Z
  1. Etkinliğin firefox'ta boş olup olmadığını ve bir hatanın yürütülmesini engelleyip engellemediğini test etmeye çalışıyorum: "event undefined"
    2018-09-06 10: 32: 13Z
  2. Hatalı kod bölümünü paylaşır mısınız? Bir pastebin bağlantısı kullanın.
    2018-11-18 15: 13: 31Z
  3. Bu çalışmıyor! 2418 oyu nasıl kazandı?
    2019-02-13 21: 26: 27Z
  4. @ MichaelFever Bu nasıl çalışmıyor? Konsolunuza kopyala yapıştır yapıştırın: const y = undefined; y == null; true döndürmeli
    2019-03-18 01: 19: 50Z
  5. const y = undefined; abc == null; Bir hata döndürecek ... Görünüşe göre undefined bir şey olarak tanımlanmış ...
    2019-04-05 09: 44: 37Z

null ve undefined’u aynı anda yakalamanın standart yolu şudur:

 
if (variable == null) {
     // do something 
}

- hangisi daha açık, ancak daha az özlü olana% 100 eşittir:

 
if (variable === undefined || variable === null) {
     // do something 
}

Profesyonel JS yazarken, tip eşitliği ve == vs === davranışı olduğu kabul edilir anlaşıldı. Bu nedenle == kullanıyoruz ve yalnızca null ile karşılaştırıyoruz.


Tekrar düzenle

typeof'un kullanılmasını öneren yorumlar yalnızca yanlıştır. Evet, yukarıdaki çözümüm, değişken yoksa, ReferenceError'a neden olur. Bu iyi bir şey. Bu ReferenceError isteniyor: hatalarınızı bulmanıza ve kodunuzu göndermeden önce bunları düzeltmenize yardımcı olacak, tıpkı derleyici hataları gibi diğer dillerde de olabilir.

Kodunuzdaki bildirilmemiş değişkenlere referans vermemelisiniz.

    
1035
2018-08-16 18: 31: 12Z
  1. Değişken tanımlanmamışsa veya kodda belirtilmemişse, typeof kullanarak daha güvenli bir ReferenceError ve break yürütmesine neden olur.
    2014-06-15 09: 49: 55Z
  2. Daha çok stilistik bir nokta var. Değişken tümü olarak bildirilmediyse, bu, yazarın yazarlığı için gerçekten kötü bir yazı. Değişkeninizin bildirilip bildirilmediğini bilmelisiniz, bu bir soru olmamalıdır. Ancak evet , eğer bir nedenden dolayı durum buysa, bunun içinde window.variable olarak değiştirilmesi gerekir.Sadece değişkeni yerine, referans hatasına neden olmaz. Bunlardan kaçınılmalıdır.
    2014-06-15 15: 40: 17Z
  3. Evet, çünkü !== yerine != yazdınız.
    2016-10-12 15: 39: 23Z
  4. - OP: "% 100 eşdeğeri" olan karşılaştırmalarla ilgili açıklama, SİZİN EDIT'inde belirttiğiniz gibi, BASİT YANLIŞ ifadesidir, ikincisi bir ReferenceError'a neden olacaktır. İddiaya gelince: "Kodunuzdaki bildirilmemiş değişkenlere referans vermemelisiniz." GERÇEKTEN Mİ? İsteğe Bağlı Parametreleri hiç duydunuz mu? jsfiddle.net/3xnbxfsu
    2017-01-09 22: 04: 01Z
  5. @ TimothyKanski isteğe bağlı parametreler, isteğe bağlı olarak sağlanmamışlarsa tanımsız olabilir, ancak kesinlikle bildirilen değişkenlerdir. Bunlar ilan edilmiş ve undefined değerine sahip, herhangi bir ilan edilmiş ancak başlatılmamış değişken, yani var someVar; değerine sahip, yani argümanınız gerçekten geçerli değil
    2017-03-05 01: 14: 27Z

Yukarıdaki cevapları birleştirerek, en eksiksiz cevabı şöyle görünüyor:

 
if( typeof variable === 'undefined' || variable === null ){
    // Do stuff
}

Bu, bildirilmemiş veya bildirilmiş ve açıkça null veya undefined olarak ayarlanmış herhangi bir değişken için çalışmalıdır. Boolean ifadesi, boş olmayan bir değeri olan bildirilen herhangi bir değişken için false olarak değerlendirmelidir.

    
193
2015-02-09 10: 47: 36Z
  1. @ Aerovistae typeof'un bir operatör değil, bir işlev olduğunu biliyorum, bu nedenle parantez gerektirmiyor, ancak yine de parantezi okumak için parantez kullanıyorum.
    2014-09-04 23: 28: 33Z
  2. ya typeof kullanmak yerine (değişken === undefined) doğrudan kontrol edilmeye ne dersiniz?
    2015-03-05 13: 45: 20Z
  3. @ ArjunU, değişken bildirilmezse ReferenceError'a neden olacaktır. Bir değişkenin bildirilip bildirilmediğini bilmiyorsanız, yukarıdaki çözümü kullanın. Değişkenin en azından bildirildiğini garanti ederseniz, variable == null
    kullanabilirsiniz.
    2015-03-31 16: 04: 25Z
  4. @Rogue'nun belirttiği gibi, değişken bildirilmemiş olabilir çünkü bu daha iyi bir çözümdür.
    2016-05-13 11: 13: 14Z
  5. Hatalıysam beni düzeltin, ancak ilk koşul ikinci olanın yerine geçmedi ve ikinci koşul çok gereksiz mi?
    2016-05-31 03: 03: 12Z
 
if (variable == null) {
    // Do stuff, will only match null or undefined, this won't match false
}
    
181
2013-12-26 14: 18: 58Z
  1. Sadece birinin başka bir yarım cevap olduğunu düşünmesi durumunda, bu gerçekten işe yarıyor. undefined, null'a eşit olarak değerlendiriliyor.
    2010-04-15 18: 37: 49Z
  2. Krom konsolda bana başarısız oldu ... ReferenceError: değişken tanımlanmadı, bu yüzden işe yarayabilir, ama benim için değil ...
    2012-03-14 00: 46: 29Z
  3. Yalnızca bildirilen değişkenler için çalışır, bildirilebilecek veya bildirilemeyen değişkenler için çalışmaz, nadiren durum böyledir. (Bu durumda typeof + a null çek kullanmanız gerekir)
    2012-03-15 00: 07: 48Z
  4. Sadece anladınız bu yorumu ekleyebilir: /*jshint eqnull:true */, JS belgenizin veya işlevinizin en üstüne, ve JSHint sizi == null kullanımınız konusunda uyaracaktır.
    2013-06-18 21: 02: 20Z
  5. @ Aerovistae, açıkça =='un kırıldığını belirten bir referansı gösterebilir. Bu cevaptaki zorlayıcı if(variable == null) benim için mantıklı geliyor ...
    2014-02-21 21: 44: 10Z
 
if (typeof EmpName != 'undefined' && EmpName) {

değer değilse doğru olarak değerlendirir:

  • boş

  • tanımlanmamış

  • NaN

  • boş dize ("")

  • 0

  • yanlış

83
2017-12-14 07: 33: 20Z
  1. Bunun vahşi ateş gibi yayılmış tehlikeli bir teknik olduğunu düşünüyorum. Çünkü kontrol edilen değişkenlerin çoğu boolean veya sayılar olabilir. Bu nedenle, kullanıcı sonuçları tam olarak anlamıyorsa, bu iyi değildir.
    2016-01-20 21: 18: 08Z
  2. Lütfen bu javascript tanıtımı için bir referans verin
    2016-05-20 16: 30: 19Z
  3. Bu, if (EmpName) ile aynıdır. undefined ise zaten sahte olacak.
    2016-11-11 15: 39: 29Z
  4. Değişken tanımlanmadıysa. o zaman eğer (EmpName) hata atar
    2016-11-12 03: 44: 06Z
  5. @ Thamaraiselvam Rudy'nin bu var EmpName; if (EmpName)'u kastettiğini düşünüyorum. Değişkenin tanımlandığı ancak bir değer atanmadığı yer.
    2016-11-16 15: 36: 07Z

jQuery attr() işlevi, boş bir dize veya gerçek değeri döndürür (ve hiçbir zaman null veya undefined). undefined'u döndüren tek zaman seçicinizin herhangi bir öğe döndürmediği zamandır.

Yani boş bir dizeye karşı test etmek isteyebilirsiniz. Alternatif olarak, boş karakter dizileri (null ve undefined) false-y olduğundan, şunu yapabilirsiniz:

 
if (!EmpName) { //do something }
    
22
2010-04-15 18: 20: 06Z
  1. Chrome 17.0.963.78 m bu hatayı veriyor: ReferenceError: EmpName is not defined
    2012-03-14 00: 47: 44Z
  2. @ EranMedan Bunun geç olduğunu biliyorum, ancak daha sonra buraya gelecek olanlara yardımcı olacağını umuyorum. Hata almanızın nedeni, bunun hiç ilan edilmemiş olmasıdır. Genellikle EmpName (veya başka bir değişken) bir işleve ya da başka bir işlevin döndürdüğü değere sahip olmanız ve bu nedenle bildirmeniz gerekir (Örnek: "var x;"). Tanımlanmamış veya boş veya boş bir dize döndürüp döndürmediğini test etmek için yukarıdaki çözümü kullanabilirsiniz.
    2013-06-25 13: 24: 05Z
  3. Bunun soğuk bir soru olduğunun farkındayım, ancak özellik öğede mevcut değilse jQuery undefined döndürür (yalnızca seçicide eşleşen öğeler yoksa, cevabına göre). Örneğin, img’u olmayan bir src, undefined’a $('img').attr('src'); döndürür
    2018-08-21 13: 13: 03Z

Bunun için kendi işlevimi yazmaya geldim. javascript gariptir

Kelimenin tam anlamıyla bir şey kullanılabilir. (Bunun, değişkenin kullanılabilir değerleri içerip içermediğini de denetlediğini unutmayın. Ancak bu bilgi genellikle gerekli olduğundan, gönderilmeye değer olduğunu düşünüyorum). Lütfen not bırakmayı düşünün.

 
function empty(v) {
    let type = typeof v;
    if (type === 'undefined') {
        return true;
    }
    if (type === 'boolean') {
        return !v;
    }
    if (v === null) {
        return true;
    }
    if (v === undefined) {
        return true;
    }
    if (v instanceof Array) {
        if (v.length < 1) {
            return true;
        }
    } else if (type === 'string') {
        if (v.length < 1) {
            return true;
        }
        if (v === '0') {
            return true;
        }
    } else if (type === 'object') {
        if (Object.keys(v).length < 1) {
            return true;
        }
    } else if (type === 'number') {
        if (v === 0) {
            return true;
        }
    }
    return false;
}

typescript uyumlu.


Düzenle. bu işlev tam olarak PHP'ler ile aynı şeyi yapmalıdır empty() işlevi (bkz. RETURN VALUES)

undefined, null, false, 0, 0.0, "0" {}, []’u boş olarak değerlendirir.

"0.0", NaN, " ", true’un boş olmadığı kabul edilir.

    
12
2019-01-22 10: 00: 54Z
  1. Biraz boş kontrol problemiyle karşılaştım. Geçen bir parametrenin boş olup olmadığını veya boş bir nesneyi { } kontrol etmek istiyorum. Bu yaygın ve saçma bir dil sorunudur, ama unutmuştum. Tüm aramalarım boş değerin tanımsız veya gevşek eşitlik karşılaştırmalarının (==) tanımlanması, ancak katı eşitlik (===) veya eşdeğeri için cevapları gösterir. Ve sonra burada -1 sıradaki cevabınız sayfanın en alt kısmında yer alıyor (yükseltilmeden önce). Object.keys( obj ).length < 1 veya belki === 0, asla -1 olmayacağını varsayarak. Neyse, 0'a yükseldi, ha. : P
    2016-05-22 15: 40: 21Z
  2. Teşekkürler, Bu işlevi bırakıp birçok kodu temizleyebildim. Bu neden standart bir JS işlevi değil benden öte.
    2017-06-04 17: 25: 00Z
  3. Burada ==’un ===’unun hepsini değiştirmelisiniz, o zaman bu makul bir işlev olacaktır.
    2017-06-06 23: 48: 45Z

Kontrol etmek istediğiniz değişken genelse, yapın

 
if (window.yourVarName) {
    // Your code here
}

yourVarName değişkeni olmasa bile bu kontrol yöntemi bir hata atmaz.

Örnek: Tarayıcımın Geçmiş API’yı destekleyip desteklemediğini bilmek istiyorum

 
if (window.history) {
    history.back();
}

Bu nasıl çalışır:

window, tüm global değişkenleri özellikleri olarak barındıran bir nesnedir ve JavaScript'te var olmayan bir nesne özelliğine erişmeye çalışmak yasaldır. history mevcut değilse, window.history, undefined değerini döndürür. undefined yanlıştır, dolayısıyla bir if(undefined){} bloğundaki kod çalışmaz.

    
9
2015-02-05 20: 37: 58Z
  1. Okuyucular, böyle bir yaklaşımın bir tarayıcıda çalışan JavaScript'ten bir global değişkeni bildirilip bildirilmediğini kontrol etmek için aptalca olduğunu belirtmelidir. ve özellikle bir tarayıcı tarafından sağlanan global (geçmiş API gibi) kullanılabilir olup olmadığını. Global olmayan bir değişkenin null veya undefined olup olmadığını kontrol etmek için çalışmaz , ne de JavaScript'iniz bir tarayıcı dışında mı çalışıyorsa çalışsın (ör., Node.js'de). Ayrıca, 0, false veya '' olarak ayarlanan globülleri, bildirilmemiş olanlarla veya genellikle iyi olan undefined veya null ile aynı şekilde ele alır.
    2015-02-05 20: 33: 48Z
  2. Bu, komut dosyasının tarayıcıda çalıştığını varsayar. Bu bir verilen değil.
    2016-10-11 11: 10: 05Z

jQuery kullandığınızdan, bir değişkenin tanımsız olup olmadığını veya tek bir işlev kullanarak değerinin boş olup olmadığını belirleyebilirsiniz.

 
var s; // undefined
jQuery.isEmptyObject(s); // will return true;

s = null; // defined as null
jQuery.isEmptyObject(s); // will return true;

// usage
if(jQuery.isEmptyObject(s)){
    alert('Either variable: s is undefined or its value is null');
}else{
     alert('variable: s has value ' + s);
}

s = 'something'; // defined with some value
jQuery.isEmptyObject(s); // will return false;
    
6
2016-05-06 00: 14: 01Z
  1. Bu benim için işe yaramadı. Hala hata alıyorum: ilk örnek için ReferenceError: s is not defined.
    2016-05-19 22: 14: 52Z
  2. Bu, number ile çalışmıyor
    2016-07-25 21: 41: 29Z
  3. Çalışmayanlar jquery'nin hata olduğunu algılamıyor prntscr.com/h7pq4b
    2017-11-08 10: 40: 38Z

Bu sorunu daha yeni yaşadım, yani bir nesnenin boş olup olmadığını kontrol etmek.
Ben sadece bunu kullanıyorum:

 
if (object) {
    // Your code
}

Örneğin:

 
if (document.getElementById("enterJob")) {
    document.getElementById("enterJob").className += ' current';
}
    
5
2019-05-19 03: 34: 22Z
  1. , var A = belge.getElementById ("enterJob") (A) A.className + = 'current'; bu şekilde aynı sonuç için% 50 iş yaparsın ... Ama belki de sadece gösteriler için yaptın ve sonra selamlıyorum.
    2013-11-18 22: 40: 20Z
  2. @ Anthony. İşe yarıyor, bu yüzden orada belirsizlik yok. :)
    2016-06-20 17: 20: 21Z

jQuery kontrol elemanı boş değil

 
var dvElement = $('#dvElement');

if (dvElement.length  > 0) {
    //do something
}
else{
    //else do something else
}
    
3
2015-04-21 08: 41: 18Z

Aşağıdaki çözümle:

 
const getType = (val) => typeof val === 'undefined' || !val ? null : typeof val;
const isDeepEqual = (a, b) => getType(a) === getType(b);

console.log(isDeepEqual(1, 1)); // true
console.log(isDeepEqual(null, null)); // true
console.log(isDeepEqual([], [])); // true
console.log(isDeepEqual(1, "1")); // false
etc...

Aşağıdakileri kontrol edebilirim:

  • null
  • tanımsız
  • NaN
  • Boş
  • dize ("")
  • 0
  • false
2
2017-12-12 10: 29: 54Z
  1. Bu, "null ve undefined'i nasıl yakalarım?" şeklinde bir soruyu cevaplamaz. "JavaScript'teki her falsey değerini nasıl yakalarım?"
    2018-02-13 18: 25: 35Z
  2. @ Aerovistae, console.log ile yaptığımı düşündüm (isDeepEqual (null, null)); ve console.log (isDeepEqual (tanımsız, tanımsız)); ?
    2018-03-22 16: 28: 35Z

bu testi krom konsolda çalıştırıyorum, (void 0) kullanarak tanımsız kontrol edebilirsiniz

 
var c;
undefined
if(c === void 0)alert();
// output =  undefined
var c = 1;
// output =  undefined
if(c === void 0)alert();
// output =   undefined
// check c value  c
// output =  1
if(c === void 0)alert();
// output =  undefined
c = undefined;
// output =  undefined
if(c === void 0)alert();
// output =   undefined
    
1
2016-05-18 20: 10: 58Z

En iyi yol:

 
if(typeof variable==='undefined' || variable===null) {

/* do your stuff */
}
    
1
2016-05-25 11: 55: 10Z
  1. Bu kesin çözüm zaten 11 Ekim 2013 tarihinde @jkindwall tarafından sağlandı. stackoverflow.com/a/19323555/2943403 Bu yalnızca kod içeren posta, işe yaramaz çünkü sayfaya yeni bir değer eklemez. Aslında, sayfa şişmesi ekliyor ve araştırmacıların okumalarını boşa harcıyor. Lütfen bu cevabı kaldırın.
    2018-05-24 00: 38: 11Z
 
var i;

if(i === null || typeof i === 'undefined'){
console.log(i,'i is undefined or null')
}else{
console.log(i,'i has some value')
}
    
1
2017-11-26 00: 35: 52Z
  1. Kullanıcı 'tanımsız' kelimesini girerse ne olur?
    2016-12-07 13: 03: 52Z
  2. Sorunuz iyidir, koşulun doğru olduğunu gösterir, bu nedenle normal tanımsız typof koşulunda normal seçeneği değiştirmemiz gerekir. @Chuck
    2016-12-07 13: 58: 57Z
  3. Bu yanlış. typeof asla undefined, yalnızca 'undefined' dizisini vermeyecektir. Dahası, eğer i == null, i ise, undefined zaten doğrudur, bu yüzden ikinci bool işe yarasa bile gereksiz olacaktır.
    2017-09-17 21: 19: 14Z
  4. Bu çözüm (koşulların değişmesiyle birlikte) 11 Ekim 2013 tarihinde @jkindwall tarafından zaten sağlandı. stackoverflow.com/a/19323555/2943403 Bu yalnızca kodlu yazı. tamamen işe yaramaz çünkü sayfaya yeni bir değer katmaz. Aslında, sayfa şişmesi ekliyor ve araştırmacıların okumalarını boşa harcıyor. Lütfen bu cevabı kaldırın.
    2018-05-24 00: 40: 46Z
 
(null == undefined)  // true

(null === undefined) // false

Çünkü === hem türü hem de değeri kontrol eder. İkisinin türü farklı, ancak değer aynı.

    
1
2018-05-27 11: 19: 18Z

Kontrol etmenin en kolay yolu şudur:

 
if(!variable) {
  // If the variable is null or undefined then execution of code will enter here.
}
    
1
2019-05-28 06: 57: 59Z
  1. Değişken potansiyel olarak istenmeyen bir değer olan false değerine sahipse bu kodu çalıştırır.
    2019-06-29 16: 23: 34Z
  2. Soru açık "Değişkenin 'tanımsız' veya 'null' olup olmadığı nasıl belirlenir?" ve bir değişkenin değeri null veya undefined ise javascript'te değeri false olur.
    2019-07-01 06: 14: 29Z

Değerin tanımsız veya boş olup olmadığını yalnızca typeof:

kullanarak kontrol edebilirsiniz.  
if(typeof value == 'undefined'){
    
0
2017-07-26 02: 16: 47Z
  1. Önceki cevaptaki yorumları görün ( stackoverflow.com/a/21273362/6305294 ) türüyle ilgili.
    2017-07-26 02: 42: 21Z
  2. Bu yanlış. null'u yakalamaz. Yıllar önce doğru ve tam bir cevap verilen bir soruya neden yeni, yanlış cevaplar verildiğini anlamıyorum. Mevcut cevapların bir şekilde yetersiz olduğunu düşünüyor musunuz?
    2017-08-30 15: 43: 48Z

Null'ın tipini çağırmak, "null" değerini döndürür, çünkü null özel değeri boş bir nesne referansı olarak kabul edilir. Sürüm 5 üzerinden Safari ve sürüm 7 üzerinden Chrome, diğer tüm tarayıcılar "nesne" döndürürken, normal ifadedeki typeof işlevini çağırmanın "işlev" döndürdüğü bir tuhaflığa sahip.     

- 1
2014-03-06 11: 24: 28Z
 
var x;
if (x === undefined) {
    alert ("only declared, but not defined.")
};
if (typeof y === "undefined") {
    alert ("not even declared.")
};

Yalnızca ikincisini kullanabilirsiniz: tanımı ve bildirimi kontrol edeceğinden

    
- 1
2015-08-15 10: 07: 37Z

Bu çok eski bir soru, ancak hala bu 2 koşulu test etmenin en iyi /güvenli yolunun değeri dizgeye aktarmak olduğunu düşünüyorum:

 
var EmpName = $("div#esd-names div#name").attr('class');

// Undefined check
if (Object.prototype.toString.call(EmpName) === '[object Undefined]'){
    // do something with your code
}

// Nullcheck
if (Object.prototype.toString.call(EmpName) === '[object Null]'){
    // do something with your code
}
    
- 1
2017-05-31 07: 47: 29Z
  1. bunun neden testleri yaptırmanın "en iyi /güvenli yol" olduğuna inandığını açıklayabilir misin?
    2017-05-31 12: 50: 18Z
  2. Dönüşüm her zaman "standartlaştırılmış" bir dize (yani, [tanımlanamayan nesne]) döndürdüğü için sahte değerleri test ederek sorun yaşamayacaksınız. Bu sadece benim truthy /falsy değerleri ile yaşadığım deneyimlere dayanan görüşüm.
    2017-05-31 13: 04: 23Z
  3. Açıklama için teşekkürler. Eleştirmiyorum, ilginç bir cevap, sadece neden diğerlerine göre potansiyel olarak daha üstün olduğu konusunda başkalarına bir açıklama yapmanı istedim.
    2017-05-31 13: 06: 31Z
  4. Endişelenmeyin! Bu tür karşılaştırmalarla ilgili birçok sorun yaşadım ve şimdiye kadar bu konu için en faydalı yaklaşım olarak görüyorum.
    2017-05-31 13: 10: 51Z

Bir değişkenin null veya tanımsız olup olmadığını sınamak için aşağıdaki kodu kullanıyorum.

 
    if(sVal === '' || sVal === null ||typeof sVal === 'undefined'){
    console.log('variable is undefined or null');
    }
    
- 3
2016-06-07 08: 59: 17Z
  1. Kapat ama hayır. typeof'u kaybedip undefined ile karşılaştırın, bir dizge olarak değil. Bu işe yarıyor, ancak fazladan operatörün daha da kötüleştirmekten başka bir etkisi yok.
    2016-04-04 16: 09: 24Z
  2. Bu durumda evet haklısınız, typeof kullanmanıza gerek yok. Ancak tanımsız değişkenlerle uğraşırken typeof kullanmak iyi bir uygulamadır. Typeof kullanmanın bir nedeni, değişken bildirilmemişse hata atmamasıdır.
    2016-04-05 02: 29: 36Z
  3. Bu aslında kötü bir şey. Kodunuzda bildirilmemiş değişkenler istemiyorsunuz. Bir ReferenceError atmasını istiyorsunuz, böylece değişkeni bulabilir ve ilan edebilirsiniz. Kesinlikle C ++ gibi derlenmiş bir dilde denemezsiniz! Sadece JS izin verdiği için yapılması gerektiği anlamına gelmez.
    2016-04-05 04: 21: 49Z
  4. Sizin veya ifadeniz geriye dönük. Bir şeyin tanımsız olduğunu kontrol etmek, ikincisi değil, ilk adım olacaktır.
    2016-05-21 15: 32: 20Z

if(x==null), javascript'te kötü bir fikirdir, "==" ile yargılamak beklenmedik türde zorlamalara neden olabilir ve kahve komut dosyası tarafından okunamaz.   hiç bir koşulda asla "==" veya "! =" kullanmayın!

if(x) daha iyi olacak, ancak 0 ve "" oldukça dikkat çekici olacak, yanlış olarak değerlendirilecek, "!= null" ile eşit yöntem değil doğru .

 buraya resim açıklamasını girin

https://www.w3schools.com/js/js_best_practices.asp

    
- 4
2017-08-05 05: 06: 16Z
  1. Bu tamamen yanlıştır ve herhangi bir profesyonel sınıf çerçeve veya yazılımın çalışılması birkaç dakika içinde bunu kanıtlayacaktır. == ile karşılaştırmak için null kullanmak, JS'de null ve undefined'u yakalamanın standart yoludur. =='lu tip zorlama bu özel bağlamda bir risk değildir ve aslında aynı anda hem null'u hem de undefined'u yakalama hedefini gerçekleştirme avantajından yararlanılmaktadır. Lütfen yıllar önce tatmin edici bir şekilde çözülen sorulara yanlış ve yanıltıcı cevaplar vermeyi seçmeden önce, dille çalışarak daha fazla zaman ayırın.
    2017-08-30 15: 48: 00Z
  2. önlemek "==". Her şey sürekli değişiyor, sizinle aynı fikirde değilim @ Aerovistae
    2017-09-02 11: 39: 12Z
  3. ben ile aynı fikirde değilsin - tüm JavaScript kuruluşuna katılmıyorsun. Açık olalım.
    2017-09-05 15: 12: 28Z
kaynak yerleştirildi İşte