Neden çoğu zaman let
yerine const
kullanmalıyım? const
kullanıyorsak, daha sonra değeri yeniden atayamayız. O zaman neden const yerine let
kullanmıyorsunuz?Neden çoğu zaman JavaScript'e izin vermek yerine const kullanmalıyım?
cevap
Kodunuzdaki let
veya const
uygun kullanmalıdır:
let
değişkenin değeri kodunaconst
sırasında değişecek eğer o alışkanlık (ancak bu tarz bir konudur projenizin stil rehberine bakın)
Pratikte, işlevlerinizi küçük tutmakla ilgili kurallara uyuyorsanız ve Böyle bir durumda, bunun ne kadar sıklıkla ortaya çıktığı, bunun bir değişkenin değerini değiştirmek zorunda kalmayacağınız için const
kullandığınız anlamına gelmesi şaşırtıcıdır. değiştirmek için variable's¹ değeri anlamına gelmez const
kullanma (Eh, ... neyse, beni şaşırttı)
birkaç şey yapar: kodunuzu okuma
Diğerlerini söyler Değişecek değeri düşünmüyorsun.
Bunu yapmak zorunda kalmadan değişkenin değerini değiştirecek bir şey yaparsanız size güzel bir proaktif hata verir.
Bu değişkenin değerini değiştirmeyeceğiniz JavaScript motorunun en iyileştiricisine bir ipucu verir. Motor bunu sık sık statik kod analizi yoluyla gerçekleştirirken,
const
kullanarak bu sorunu giderir ve statik kod analizi değerin değişmediğini ortaya çıkardığında bunu yapmasına izin verir.
Yukarıdaki 2. hatayı aldığınızda, o zaman akıllı bir karar vermek yapabilirsiniz: let
olarak değiştirin, yoksa ilk etapta bu değişkenin değerini değiştirmek istemedim?
¹ Evet, tanım değişkeni olmayan bir şeye başvurmak için "değişken" terimini kullanmak çok eğlenceli. :-) Şartnamenin terimi "bağlayıcı" dır, fakat bahse girerim ki, insanlar her zaman yakın zamanda gündelik konuşmada "bağlamalar" dan bahseder. Bu nedenle, toplam terim muhtemelen "değişken" olarak kalacaktır. "sabit" olarak bir şey.
- 1. Neden Thread yerine Runnable kullanmalıyım?
- 2. Kalıtım yerine şablonları ne zaman kullanmalıyım?
- 3. DataContract yerine İleti Sözleşmelerini ne zaman kullanmalıyım ve neden?
- 4. RequestStack ne zaman getCurrentRequest yerine getMasterRequest kullanmalıyım?
- 5. Oturum yerine ne kullanmalıyım?
- 6. Neden "en önemli const" const olmalı?
- 7. sscanf yerine ne kullanmalıyım?
- 8. com.google.appengine.repackaged * yerine ne kullanmalıyım?
- 9. Nedeni çoğu form javascript NAME yerine
- 10. RESTful api oluştururken neden MVC yerine WCF kullanmalıyım?
- 11. Neden çoğu System.Array yöntemi statik?
- 12. Dize s = yeni Dize ("Hello World") ne zaman kullanmalıyım?
- 13. Neden MVC'de LabelFor kullanmalıyım?
- 14. npm'yi "-g" bayrağıyla ne zaman kullanmalıyım ve neden?
- 15. Perl'de printf yerine ne kullanmalıyım?
- 16. Neden sqlite veritabanı tarayıcısı bir hata vermek yerine donuyor?
- 17. Getter işlevleri yerine const başvurularını kullanabilir miyim?
- 18. Neden doğrudan denetleyici kodunu çağırmak yerine Ext.dispatch kullanmalıyım?
- 19. std :: bind ne zaman kullanmalıyım?
- 20. Linux'ta dosya açtığımda O_CLOEXEC'i ne zaman kullanmalıyım?
- 21. FxCop kullanmalıyım ve neden?
- 22. Neden Spring Android kullanmalıyım?
- 23. Neden çoğu asyncio örneği loop.run_until_complete() kullanıyor?
- 24. hata_kodu ": 401 zaman vermek chat_id
- 25. Ne zaman ve neden ClassName kullanmalıyım: Bu (boş)?
- 26. Neden "const true = false" izinli?
- 27. _aligned_malloc() işlevini ne zaman kullanmalıyım?
- 28. const
- 29. Jsoup WhiteList yorumlara izin vermek için
- 30. Yalnızca Apache'nin 000-varsayılanına izin vermek için
Neden sence "en fazla zaman, let_ yerine const kullanmalıyım"? – csmckelvey
Bu sorunun kapanacağını varsayalım, bu yüzden hızlı cevap, her zaman bunlardan herhangi birini kullanmamalısınız, bu türleri değişkenin ihtiyacına göre kullanmalısınız, const bu değişkenin uygulamada değiştirilemeyeceğini Eğer bu değişkeni görüyorsanız, değişmeyeceğini ve bunun bir sabit olacağını düşünüyorsanız, bu durumun gelecekte değişecek olan genel bir tip olacağı anlamına gelir. Değiştirilebilecek değişkene ihtiyacınız varsa, const kullanmıyorsanız, var seçeneğini kullanın. –
'const' (uygun olduğunda), birisinin kodunuzu anlamasını kolaylaştırır. “Const” ifadesini görerek, kodun geri kalanına bakmadan, bu değişkenin yeniden atanmayacağını (yine de mutasyona uğrayabilse de) bilmediğini görürüz. Ve, yeniden atamanın gerçekleşmesini istemediğinizde, bir programcı olarak, gerçekleştiğinde yararlı bir hata alırsınız. – trincot