2012-11-26 28 views
15

Son birkaç ayda, JavaScript hakkında çok şey öğrendim. Dilleri yıllardır suistimal ettiğim için, şimdi dili daha iyi anladığımı söyleyebilirim ve love 'a işlevsel doğasının faydaları için geldim.
Son zamanlarda Scheme'i öğrendim, ama bu sadece eğlence için.izin ver veya var izin ver

for (var i=0;i<someArray.length;i++) 
{ 
    console.log(someArray[i]); 
} 
console.log(i);//will log someArray's length 

Oysa:

for (let i=0;i<someArray.length;i++) 
{ 
    console.log(someArray[i]); 
} 
console.log(i);//undefined 
MDN reference Tarama ben JS, blok kapsamını eksik olsa, çok Sistem'in let gibi belirli bir bloğa değişken yerel bildirmek için kullanılabilecek bir anahtar kelime, var olduğunu fark

Şimdi bilmek istediğim şudur: Neden let daha sık kullanılmıyor? X-tarayıcı desteği ile bir ilgisi var mı? Bu daha az bilinen-iyiler biri mi?
Kısacası, let üzerinden var kullanmanın avantajları nelerdir, uyarılar nelerdir? Tek bir blokta şey, daha tutarlı (çift beyanlar (ECMA6 taslaklar olsa Bunu düzeltmek). fonksiyon organları dışında, TypeError yükseltirseniz

Bildiğim kadarıyla söyleyebilirim, let davranış olduğunu
olmak dürüst, ayrı bu özellik/anahtar kelime çok iyi bilinen olmama gelen, geçici bir değişken daha okunabilir kod için yapar nerede yerde döngüler için let kullanılmasına karşı herhangi argüman düşünmek veya mücadele.

cevap

28

Evet, tamamen vardır Şu anda sadece Firefox (ECMAScript'in bir parçası olduğu için) uygular..

Ama coming in ES6, yani umut var ...

Ben hem desteklendiğini verilen let üzerinde var birçok faydası olduğu söylenebilir şüpheliyim. Ben mantra "let yeni var"

+0

cevabınızı (5 dakika daha) kabul, ama ... Aptal kesinlikle haklısın, ben de umutlarınızı paylaşılamıyor olsa olacak düşünüyorum Şu anda Chrome'u kullanıyorum ve konsolumu açmak için zamanımı aldım ve x = 1'e izin vermeyi denediysem, orada bir sorun olduğunu biliyordum. Aptalca, ama yine de: '' Bu soruyu okuyan herkesin, ECMA posta listesindeki ASAP'ı destekleme isteğini yerine getirmesini umarız :) –

+1

@EliasVanOotegem: Evet, son olarak hedeflerinin Aralık 2013 olduğunu duyduk. biraz beklemiştiniz, ancak deneysel JavaScript'i etkinleştirmek için bir başlangıç ​​bayrağı ayarlayarak Chrome'da uygulanan bazı yeni özellikleri etkinleştirebilirsiniz. Bunların arasına dahil olup olmadığından emin değiliz. Bunları ayarlamak için, chrome adres çubuğuna 'chrome: // flags /' yazın. –

+0

Sadece deneysel özellikler etkinleştirildi ve 'izin ver' destekleniyor, ancak FF ve krom arasında bazı farklar var, ancak bunun bir kısmı konsola _eval_'ın koduna göre olabilir. Neyse büyük +1 ve –

İlgili konular