JavaScript veya ActionScript'te anlam veya performans açısından kesinlikle hiçbir fark yoktur .
var
ayrıştırıcı için bir direktiftir ve çalışma zamanında yürütülen bir komut değildir . Belirli bir tanımlayıcı var
bir işlev gövdesinde (*) bir veya daha fazla herhangi bir yerde bildirilmişse , bu tanımlayıcının bloktaki tüm kullanımı yerel değişkene atıfta bulunacaktır. Döngünün içinde, döngünün dışında veya her ikisinin birden value
bildirildiği fark etmez var
.
Sonuç olarak en okunaklı bulduğunuz şeyi yazmalısınız. Crockford ile tüm değişkenleri bir işlevin üstüne koymanın her zaman en iyi şey olduğunu kabul etmiyorum. Bir değişkenin bir kod bölümünde geçici olarak kullanıldığı durumda var
, bu bölümde bildirmek daha iyidir , bu nedenle bölüm tek başına kalır ve kopyalanabilir. Aksi takdirde, birkaç kod satırını yeniden ilişkilendirme sırasında ilişkili olanı ayrı olarak seçip taşımadan yeni bir işleve kopyalayıp yapıştırın var
ve kendinize yanlışlıkla bir global var.
Özellikle:
for (var i; i<100; i++)
do something;
for (var i; i<100; i++)
do something else;
Crockford ikinciyi var
kaldırmanızı (ya da her ikisini de kaldırmanızı var
ve var i;
yukarıdaki işlemleri yapmanızı ) tavsiye eder ve jslint bunun için size sızlanır. Ancak IMO var
, işlevin üstünde ekstra, kolayca unutulan bir kod parçasına sahip olmak yerine, her iki s'yi de tutmak, ilgili tüm kodu bir arada tutmak daha sürdürülebilir .
Şahsen ben var
, aynı fonksiyonun başka bir bölümünde aynı değişken adının başka bir ayrı kullanımı olsun veya olmasın, bağımsız bir kod bölümünde bir değişkenin ilk ataması olarak beyan etme eğilimindeyim . Benim için hiç beyan etmek var
istenmeyen bir JS siğilidir (değişkenlerin yerel olarak varsayılana sahip olması daha iyi olurdu); JavaScript'te de [eski bir düzeltme] ANSI C'nin sınırlamalarını çoğaltmak benim görevim olarak görmüyorum.
(*: iç içe fonksiyon gövdeleri dışında)