SORU
28 AĞUSTOS 2011, Pazar


Noktalı virgül Python ve JavaScript arasındaki fark nedir?

Python ve JavaScript geliştiriciler kullanmak veya noktalı virgül atlamak için izin verir. Ancak, çoğu zaman, her zaman onları kullanmam gerekirken Python noktalı virgül kullanmak gerektiğini önerdi (kitap ve bloglar) JavaScript gördüm.

Diller noktalı virgül kullanmak arasında teknik bir fark var ya da bu sadece kültürel bir fark var mı?

CEVAP
28 AĞUSTOS 2011, Pazar


Bu uzun zamandır aklımı karıştırmıştı. Kültürel bir farklılık vardı sadece, ve herkes noktalı virgül ekleme dilinde en kötü özelliği hakkında şikayet olduğunu düşündümsalak. NullUserException's answer sık tekrarlanan örneği, girinti, Python göz ardı ederek bu durumda JavaScript olarak aynı şekilde davranır, çünkü bana tesir etmedi.

Sonra bir gün, bir şey belli belirsiz böyle yazdım:

alert(2)
(x = $("#foo")).detach()

Bu şekilde yorumlanmış olması bekleniyor:

alert(2);
(x = $("#foo")).detach();

Aslında böyle açıklamıştı:

alert(2)(x = $("#foo")).detach();

Ben şimdi noktalı virgül kullanın.

JavaScript sadece1bu durumda: noktalı virgül gibi bir tedavi şekli

  • Değil bir sözdizimi hatası.
  • Yeni satır throw return anahtar kelime ve ifade arasında.
  • Yeni satır continue break anahtar kelime ve tanımlayıcı arasında.
  • Yeni satır bir değişken ve -- sonek operatörü arasında.

Bu davranış tam da beklediğiniz olmadığı bu gibi durumlarda bırakır. Bazı insanlar2sadece gerekli olan yere noktalı virgül kullanan kuralları kabul etmiştir. Anlamsız değil artık biliyorum ki her zaman bunları kullanarak standart kurallarına uyar, tercih ederim.


1Birkaç küçük ayrıntı, tam açıklama ECMA-262 5e Section 7.9 bakın ihmal ettim.
2Twitter Bootstrap yüksek profilli bir örnektir.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 3DS Max Tutorials

    3DS Max Tuto

    4 AĞUSTOS 2013
  • Adam Outler

    Adam Outler

    19 EKİM 2006
  • MrRandomSong

    MrRandomSong

    29 Kasım 2009