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

  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • HereWeStayKings

    HereWeStayKi

    3 NİSAN 2013