Son zamanlarda io.js için bir sürü ES6 kodu yazıyorum. Doğada öğrenilecek çok fazla kod yok, bu yüzden kendi sözleşmelerimi giderken tanımladığımı hissediyorum.
Benim sorum ne zaman const
vs kullanılacağı ile ilgili let
.
Bu kuralı uyguluyorum: Mümkünse, kullanın const
. Sadece let
değerinin değişmesi gerektiğini biliyorsanız kullanın . (Her zaman geri dönebilir ve a'yı bir a const
ile değiştirebilir ve let
daha sonra değerini değiştirmeniz gerekir.
Bu kuralın ana nedeni, tutarlı bir şekilde uygulanması kolaydır. Gri alan yok.
Mesele şu ki, bu kuralı uyguladığımda pratikte beyanlarımın% 95'i const
. Bu bana çok garip geldi. Sadece kullanıyorum let
gibi şeyler için i
bir de for
(gerçek hayatta çok gelip etmeyen) birikmiş Fibonacci toplamları gibi şeyler için zaman zaman döngü veya. Buna şaşırdım - ES5 kodumdaki "değişkenlerin"% 95'inin değişmeyen değerler için olduğu ortaya çıktı. Ama kodumun const
her yerini görmek bir şekilde yanlış geliyor.
Öyleyse sorum şu: const
bu kadarını kullanmak tamam mı? Gerçekten böyle şeyler yapmalı mıyım const foo = function () {...};
?
Ya da const
bir modülün tepesinde bir değişmezi kodladığınız durumlarda - örneğin büyük harflerle yaptığınız gibi - böyle const MARGIN_WIDTH = 410;
mi?
function foo() {...}
daha iyidir<anything> foo = function() {...}
function foo() {...}
Kaldırma nedeniyle, kaldırma nedeniyle küçük kafa karışıklığına neden olabilecek bir uyarı vardır . Ayrıca, onun varlığı aynı şeyi yapan iki yapımız olduğu anlamına gelir; ancak bunlardan biri yalnızca çok özel bir bağlamda çalışır. (Bir ifadenin var olabileceği herhangi bir yerde bir işlev ifadesi kullanabilirsiniz, ancak yalnızca ifade düzeyinde bir işlev bildirimi kullanabilirsiniz.) Kısalık tercih ederseniz, sorun yalnızca işlev ifadesi sözdiziminin tüm kelimeyi kullanması olabilir function
.
const
değil.