2016-12-11 41 views
5

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?

+1

Neden sence "en fazla zaman, let_ yerine const kullanmalıyım"? – csmckelvey

+0

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. –

+4

'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

cevap

13

Kodunuzdaki let veya const uygun kullanmalıdır:

  • let değişkenin değeri koduna
  • const 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

  1. Diğerlerini söyler Değişecek değeri düşünmüyorsun.

  2. Bunu yapmak zorunda kalmadan değişkenin değerini değiştirecek bir şey yaparsanız size güzel bir proaktif hata verir.

  3. 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.