Tam metin 3228 Kelimeler, tahmini öğrenme süresi 10 dakika
Kaynak: Pexels
== ile karşılaştırıldığında, birçok geliştirici === kullanmayı tercih ediyor. Neden?
Çoğu çevrimiçi eğitim, JavaScript'in zorla dönüştürülmesinin çok karmaşık ve öngörülemez olduğunu açıkladı, bu nedenle her zaman === kullanılması önerilir.
İnternetteki bazı öğreticilerdeki yanlış anlamalar halkı yanıltmıştır ve birçok yazılı olmayan kural ve popüler web sitesi her zaman === kullanmanızı önerir.
Tüm bunlar, birçok programcının bazı programlama dillerinden vazgeçmesine ve bunları derin anlayış ve kavrayış yerine kusurlar olarak görmesine neden oldu.
Aşağıdaki iki durum, == kullanmanın en iyi olduğu zamanı göstermektedir.
Bu makale, konu hakkında derinlemesine bir anlayış kazanacak, ikisi arasındaki farkları keşfedecek, zorunlu dönüştürme kavramını anlayacak, bazı klasik vakaları inceleyecek ve son olarak bir karar vermemiz için bize rehberlik edecek yönergeleri bulacaktır.
Javascript kodlama dilinde, "eşit" ilişkiyi temsil eden iki operatör vardır.
1. === - Katı eşitlik karşılaştırmasına üçlü eşitlik karşılaştırması da denir.
2. == - Soyut eşitlik karşılaştırması aynı zamanda çift eşitlik karşılaştırması olarak da adlandırılır.
=== kullanmaya alışkınım, çünkü birisi bana =='dan daha iyi ve daha gelişmiş olduğunu söyledi ve tembel bir adam olarak bu ifadeyi kasıtlı olarak doğrulamadım. === kullanmayı çok uygun buluyorum.
"You Don't Understand JS" kitabının yazarı Kyle (@getfiy) tarafından FrontendMasters'da yayınlanan "JavaScript'in Derin Temelleri" ni okuyana kadar fikrim oldukça yanlıştı.
Profesyonel bir programcı olarak, günlük işlerimde kullandığım operatörler hakkında derinlemesine düşünmedim. Bu acı verici gerçek, ilgili bilgiyi geniş çapta yaymaya ve insanların yazdığımız kodu anlamasına ve daha fazla dikkat etmesine karar vermeme neden oldu.
Gerçeği anlamak önemlidir. Mozilla'da değil, W3schools web sitesinde değil, ==='nin =='dan daha iyi olduğunu iddia eden yüzlerce makalede yer almıyor ve bu makalede yer almıyor.
Gerçek, JavaScript çalışma modunun açıklamasını bulabileceğiniz JavaScript dil spesifikasyonundadır.
Kaynak: Pexels
1. == yalnızca değerlerin eşit olup olmadığını kontrol etmek için kullanılır (tanım daha gevşek)
Spesifikasyonda == net bir tanıma sahiptir, buradan anlaşılabilir ki, algoritmaya devam etmeden önce yapmamız gereken ilk şey aslında değişken türünü doğrulamaktır.
2. === Değeri ve değişken türünü kontrol edin (kesin karşılaştırma)
Ayrıca, === şartnamesinden, değişken tipinin ilk olarak kontrol edilmesini gerektirdiği ve türler farklıysa, değerleri karşılaştırmaya gerek olmadığı da görülebilir.
== ve === arasındaki gerçek fark, dönüştürmenin zorlanıp zorlanmayacağıdır.
Zorlama veya tür dönüştürme, herhangi bir programlama dilinin temellerinden biridir. Bu, özellikle JavaScript gibi dinamik olarak yazılmış diller için önemlidir, çünkü derleyici, değişken türü değişirse sizi uyarmaz.
Zorunlu tip dönüşümünü anladıktan sonra, kodu JavaScript gibi bir şekilde yorumlayabiliriz, bu da bize daha fazla çalışma alanı sağlar ve hataları en aza indirir.
Açık baskı
Programcı açık dönüşümü zorlamak için aşağıdaki yöntemi kullandığında, değişkenin türü değişecektir.
Boolean (), Number (), BigInt (), String (), Object ()
Örneğin:
let x = 'foo'; typeof x // stringx = Boolean ('foo') typeof x // booleanÖrtük baskı
JavaScript'te değişkenler zayıf bir şekilde yazılmıştır, bu da otomatik olarak dönüştürülebilecekleri anlamına gelir (örtük zorlama). Toplama, çıkarma, çarpma ve bölme işlemlerini, yürütme bağlamını veya == kullanın, örtük zorlama genellikle oluşur.
2 / '3' // '3' 3newDate () + 1'e zorlandı // 1if (x) ile biten bir tarih dizesine zorlandı // x, boolean1'e zorlandı == true // true 11 sayısına zorlandı = = 'true' // 'true', NaN`'ye çekirdeklenmiş bu $ {değişken}, dizgeye çekirdeklenecekÖrtük baskı iki ucu keskin bir kılıçtır ve onu akıllıca kullanmak okunabilirliği artırabilir ve fazlalığı azaltabilir. Anlamını yanlış anlarsanız veya işleminizde bir hata yaparsanız, hesaplamalarınız tatmin edici olmayacak ve JavaScript'i iyi çalışmadığı için şikayet edecek ve suçlayacaksınız.
Kaynak: Pexels
Soyut eşitlik karşılaştırması ==
1. X ve Y aynı türe aitse, lütfen === komutunu çalıştırın.
2. X boşsa ve Y tanımlı değilse veya tam tersi - doğrudur.
3. Biri sayı ise, diğerini sayı olmaya zorlayın.
4. Bir nesne bir nesne ise, orijinal nesneye dönüştürülmeye zorlanır.
5. Yanlış döndür
Katı eşitlik karşılaştırması ===
1. Tür-yanlış eşleşmiyorsa.
2. Tür değerle eşleşiyorsa - değerle karşılaştır, sayı değilse (NaN), yanlış döndür.
3.-0-doğru.
1. Aynı tür (çoğu durumda)
Türler aynıysa === ve == arasında hiçbir fark yoktur. Bu nedenle, daha anlamsal olanı kullanılmalıdır.
Bazıları şöyle diyecek: "Türün farklı olması durumunda === kullanmayı tercih ederim."
Ancak bu ifade, kaydetmek için iki kez basmak, ancak beş kez tazelemek gibi mantıksızdır. Her ihtimale karşı kodu aynı şekilde iki kez yazmıyoruz, değil mi?
2. Farklı türler (ilkeller)
Her şeyden önce, lütfen farklı türlerin, türlerin bilinmediği anlamına gelmediğini unutmayın.
Veri türü hakkında hiçbir şey bilmiyorsanız, bu, === veya == kullanıp kullanmayacağınızı tartışmadan önce koddaki sorunu çözmeniz gerektiği anlamına gelir.
Veri türleri hakkında belirli bir anlayışa sahip olmak, kodu daha derinlemesine anladığınızı gösterir, bu da hataları azaltmaya ve daha güvenilir yazılım geliştirmeye yardımcı olur.
Veri türünü tanıdıktan sonra, zorunlu dönüştürmeyi anlayarak, zorunlu dönüştürmeyi yapıp yapmamayı seçebilir ve === veya == kullanıp kullanmamaya karar verebiliriz.
Bir sayı veya dizge olabileceğini varsayalım.
Bu algoritmanın sayılar için daha uygun olduğunu unutmayın, bu yüzden Number () 'ı seçmelisiniz.
let foo = 2; let bar = 32; // sayı veya stringfoo == bar // eğer çubuk dizge ise numberfoo === Number (bar) // temelde samefoo yapmak === çubuğu // her zaman çubuk dizge olarak gelirse başarısız olur3. Boş (geçersiz) ve tanımsız (tanımsız)
== kullanırken, null ve undefined arasında önemli bir fark yoktur.
let foo = nulllet bar = undefined; foo == bar // truefoo === bar // false4. İlkel olmayan
Nesneler ve diziler gibi ilkel olmayanları karşılaştırmak için == veya === kullanamazsınız.
1. Kullanılabileceği her durumda tercih edilir ==
2. == bilinen türler için kullanılabilir, tür dönüştürmeye zorlamayı seçebilirsiniz.
3. Veri türünü olabildiğince iyi bilin.
4. Türü bilmiyorsanız, lütfen == kullanmayın.
5. Türü biliyorsanız, hem === hem de ==
6. Türler eşleşmediğinde === anlamsızdır.
7. Türler eşleştiğinde, === kullanımına gerek yoktur.
Lütfen == kullanmaktan kaçının
JavaScript'teki yanlış değeri gerçekten anlamıyorsanız, aşağıdaki durumlarda == kullanmamalısınız.
== with0 veya "" veya "" == non primtives == true veya == falseKaynak: Pexels
JavaScript'i kullanma deneyimime dayanarak, şimdiye kadar işlenecek değişkenin türünü her zaman anladım. Bilmiyorsam, istenen değişkeni seçmek için type of kullanacağım.
Burada okuyan okuyucular için dikkat edilmesi gereken dört nokta var.
1. Türü bilmiyorsanız veya bilmeniz gerekmiyorsa, === kullanmak en iyi seçimdir.
2. Türün cehaleti, kodu anlamadığınız için olabilir, lütfen kodu yeniden düzenlemeye çalışın.
3. Daha iyi kod yazmak için türü bilin.
4. Tür biliniyorsa, en iyisi == seçin, aksi takdirde === kullanın.
Okuduğunuz için teşekkürler ve umarız bu makale JavaScript anlayışınızı derinleştirmenize yardımcı olur.
Yorum Beğen Takip Et
Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım
Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun