SORU
10 Ocak 2011, PAZARTESİ


JSLint hata: 'var' işlevi üstüne tanımlamalar Hareket

JSLint sitesi güncelleme, ve ben artık JS betikleri kontrol edin. Benim için, bu uyarı çok önemli değildir ve binlerce dize ile bunu düzeltmek için gitmek istemiyorum, Daha kritik sorunları bulmak istiyorum.

Herkes bu hatayı kapatın, ya da eski JSLint nasıl kullanılacağını biliyor mu?

GÜNCELLEME

Örnek:

function doSomethingWithNodes(nodes){
  this.doSomething();

  for (var i = 0; i < nodes.length;   i){
    this.doSomethingElse(nodes[i]);
  }

  doSomething(); // want to find this problem
}

jslint.com çıkış:

Error:
Problem at line 4 character 8: Move all 'var' declarations to the top of the function.

for (var i = 0; i < nodes.length;   i){

Problem at line 4 character 8: Stopping, unable to continue. (44% scanned).

Sorun:

Fonksiyonları üzerine değişken olması yeni bir gereklilik. Bu hata, komut dosyası taramayı durdurur, çünkü test kodu için JSLİNT kullanın, yapamam.

Bir sürü kod var, ve kritik hata olarak bu uyarı tehdit etmek istemiyorum.

GÜNCELLEME 8/22/2011: http://jshint.com http://jslint.com/ çok daha iyi görünüyor bulundu

CEVAP
20 HAZİRAN 2011, PAZARTESİ


Benim fonksiyonları üstünde for(var i=0; ...; i ) var i; koyacağım yolu yok. The JavaScript Specification for bölümünde kabul edilebilir bir sözdizimi vardır, özellikle (12.6). Ayrıca, Brendan Eich onun örneklerde kullandığı sözdizimi.

Üst bildirim taşınma örtünün altında olanları daha doğru bir şekilde yansıtmak için, ancak, bu yüzden sadece yansıtır, etkilemez ayarlamıştım.

Benim için, bu for yineleme için çok saçma bir beklenti. JSLint bunu algıladığında işleme durur, çünkü daha çok.

İster değişken bir işlevin üstünde ilan daha okunabilir olması tartışmalıdır. Ben şahsen yineleyici değişken kullanıldığında ilan edilmeyi tercih ederim. Eğer değişken zaten DAHİLİ olarak oluşturulur umrumda değil, içim rahat o yüzden burada başlıyor ediyorum.

Burada kullanılan bir yineleyici değişken bildirmek global (eğer döngü başka bir işlev içine taşırsanız, yineleyici değişken birlikte hareket) bilerek ve isteyerek yapılan sağlar olduğunu iddia ediyorum. Bu fonksiyonları üstünde değişken bildirimleri tutmak zorunda çok daha rahat.

Şimdilik, önemli şeyler odaklanmak gibi görünüyor çünkü http://www.javascriptlint.com/online_lint.php kullanıyorum.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jaclyn W

    Jaclyn W

    5 Mayıs 2006
  • RealPapaPit

    RealPapaPit

    16 Mart 2009
  • Ricardo Cerqueira

    Ricardo Cerq

    28 Mayıs 2008