Neden RESMİ JavaScript referansı yok? [kapalı]


91

Bir JavaScript referansı aramaya çalıştım, ancak mevcut hiçbir referans yok. Önerilen en iyi iki kaynak MDN (Mozilla Developer Network) ve W3Schools'tur.

Neden?


55
W3schools'tan kaçının; JS malzemesi aşırı derecede zayıf olma eğilimindedir, IMHO.
NickFitz

1
Üzgünüm MDC'yi kastetmiştim; developer.mozilla.org/en/About_JavaScript
huy

9
Bu biraz rastgele bir yorumdur, ancak şahsen tüm tarayıcıların tüm Javascript / Jscript bastardizasyonlarını atması ve jQuery'yi yerel olarak uygulaması gerektiğini düşünüyorum. :)
DisgruntledGoat

14
DOM üzerinden jQuery duvar kağıtları, ancak aslında JavaScript'in yerini almaz.
Rob

2
@huy MDN, MDC veya MDE değil
maan81

Yanıtlar:


64

Resmi bir JavaScript sürümü yok. Tüm tarayıcılar kendi JavaScript motorlarını oluşturdu - yine de bazıları aynı şeyi kullanıyor. Ancak özellikle Internet Explorer'ın, diğer tarayıcıların desteklediği pek çok şeyi desteklemeyen kendi sürümü vardır, bu da genel bir JavaScript referansı yapmayı çok zorlaştırır.

Düzenleme:
Resmi bir ECMA standardı ve geliştirme ekibi olduğunu bilmeme rağmen, benim açımdan, tarayıcılar (Internet Explorer) buna uymadığı sürece bunun gerçekten önemli olmadığıdır. Günün sonunda, istemciler JavaScript'in Internet Explorer için de çalışmasını ister. ECMA standartlarını önemsemeyecekler, sadece çalışmasını istiyorlar. JavaScript kitaplıklarının devreye girdiği yer burasıdır, ancak bu başka bir hikaye.

HTML ve CSS ile aynı sorunlar, bu araçları aktif geliştirme için şu kadar kullanamayız:

  • Tüm tarayıcılar onları destekler.
  • Tarayıcılara, desteklemelerini sağlamak için kod veriyoruz.
  • Sorun değil, tüm tarayıcılarda çalışmıyor.

Düzenleme2:
Microsoft'tan yeni tarayıcı projesi: Edge ile Internet Explorer mezara yaklaşıyor. Ancak bu, genel resmi gerçekten değiştirmez. Desteklememiz gereken farklı tarayıcılar varsa hala çok şeyimiz var. Geliştiriciler sürekli olarak mümkün olanın sınırlarını zorlamaya çalışıyor. Bu, sık sık bu sorunu yaşadığımız anlamına gelir, desteklemek istediğimiz bazı tarayıcı sürümleri standardın bazı özelliklerini (genellikle biraz akıcıdır) desteklemiyor, bu da bazı geçici çözümler yapmamız veya eksik yerleşik özelliklerde.


Görüyorum ki, Michael'ın yukarıda bahsettiği ECMA-262 standardına göre farklı tarayıcıların kendi uygulamaları var mı?
huy

3
@huy: evet - bu standardın farklı yorumları / farklı yorumları için, ne yazık ki ...
Andrzej Doyle

1
-1 Orada olup o ECMAscript denir ve arkasında resmi bir vücut var: Resmi bir JavaScript standart en.wikipedia.org/wiki/Ecma_International
Hasen

ECMA "standardını" desteklemede diğer tarayıcılar gibi neden daha kötü olarak Internet Explorer'ı seçtiğinizi bilmiyorum.

5
@ ראובן: Çünkü / öyleydi. Uzun bir süredir IE, diğer tarayıcıların sahip olmadığı birçok ciddi hataya sahip değildi, aynı zamanda diğer tarayıcıların sahip olduğu önemli özellikleri de kaçırıyordu. IE8 ve 9 çok şey yakaladı, bu yüzden durum değişiyor. Ancak uzun yıllar IE felaketti, diğer tarayıcılar iyi ECMAScript desteğine sahipti. Buna ek olarak, ECMAScript olan standart. Bunu neden tırnak içine aldığından emin değilim.
Pauan

28

Resmi ECMAscript sitesi ile deneyebilirsiniz,

http://www.ecmascript.org/

ancak yararlı olan şey aslında her tarayıcının uygulanmasıdır.

Danny Goodman'ın JavaScript İncil'indeki bu hile sayfasını çok beğendim:

http://media.wiley.com/product_ancillary/12/04705269/DOWNLOAD/9780470526910_Appendix_A.pdf


O kopya kağıdı öldü. Caniuse.com'u önerebilir miyim?
Grinn

Teşekkürler, yeni bağlantıya bağlandım ve ne olduğunu biraz açıkladım. Söylediğin için teşekkürler!
Victor

Güzel, kontrol edeceğim.
Grinn

22

Bunun "resmi" olduğunu söyleyebilirim: https://developer.mozilla.org/en/JavaScript

Ayrıca ECMAScript Language Specification, 5.1 Edition'a (veya PDF olarak , kesin belirtim) sahipsiniz .

Ve Microsoft'tan: JavaScript Dil Referansı : "Bu dokümantasyon , ECMAScript 5th Edition dil belirtimiyle uyumlu olan Microsoft JavaScript uygulamasını açıklar . Ayrıca Ecma Standartlarında bulunmayan ek özellikler de sağlar."


8
IE'nin bir JavaScript motoru yoktur - onun yerine JScript uygular (büyük ölçüde uyumludur). msdn.microsoft.com/en-us/library/yek4tbz0%28VS.85%29.aspx bunun için resmi referans gibi görünüyor.
Quentin

3
Hmm ... developer.mozilla çok yardımcı oluyor, ama ben buna "resmi" demem. ECMAScript Dil Belirtimi "resmiye" daha yakındır.
Steve Harrison

4
ECMAScript Dil Belirtimi, ECMAScript için resmi referanstır. JavaScript, ECMAScript'in bir üst kümesidir, Netscape tarafından oluşturulmuştur ve Mozilla, MDC'yi Netscape'ten miras almıştır (adı o zamandan beri değişmiş olsa da)
Quentin

ECMAScript standardı için +1.
Jason S

@Quentin - Referans verdiğiniz MSDN bağlantısının başlığının artık "JavaScript Referansı" olması ilginç . Ancak, "JScript (ECMAScript3)" adlı MSDN makalesi şunu belirtir: "JScript, ECMA 262 dil belirtiminin (ECMAScript Sürüm 3) Microsoft uygulamasıdır. Yalnızca birkaç küçük istisna dışında (geriye dönük uyumluluğu korumak için) JScript, ECMA standardı. " .
DavidRR

8

Web için ECMAScript kullanıyorsanız (ki bu insanların% 99,9'u), dilin temel sözdizimlerinin ötesinde (yukarıda bahsedilen ECMA-262 spesifikasyonunda ele alınmıştır), muhtemelen aradığınız şey bir DOM referansıdır - Bu, web belgeleriyle etkileşim kurmak için kullanılan ECMAScript API'sidir.

Hiç kimsenin DOM api sofar'dan bahsetmemesine çok şaşırdım. Mevcut W3C DOM standardı burada: http://www.w3.org/TR/DOM-Level-2-Core/

(btw, adlandırma karmaşasına gelince - ECMAScript resmi standardın adıdır ve "Javascript" ve "JScript" Netscape ve Microsoft'un tescilli "çatalları" dır)


3

Resmi bir referans var, sadece çok uygun bir formatta değil. Bu ise , ECMA-262 spesifikasyonu. Aranabilir bir HTML sayfaları kümesi yerine tek ve çok büyük bir PDF belgesidir.


3

Mozilla Belgeleri ekibinin ( Eric Shepherd gibi ) bir üyesi tarafından MDC üzerindeki JavaScript sayfalarının herhangi bir revizyonu resmidir . JavaScript resmi olarak Mozilla tarafından korunmaktadır, bu nedenle yalnızca Mozilla tarafından hazırlanan belgeler resmidir. JavaScript'i destekleyen tek motor şu anda Mozilla tarafından yapılmıştır ve diğer tüm motorlar ECMAScript'i uygulamaktadır. JavaScript ve ECMAScript'in epeyce farklılıkları vardır (örneğin, harika ifade).let


3

Uygulamalar olduğu sürece (tüm tarayıcılarda) ve bir şartname (ECMAScript) olduğu ancak şartnamelere karşı uygulamaların uygunluk testleri olmadığı sürece "resmi" bir referansa sahip olmak çok zordur.

Yine de, http://es5conform.codeplex.com/ adresinde EMCAScript 5 uygunluk paketine sahibiz - ve ECMAScript uygulamalarının birbirine yaklaşarak ECMAScript'in dil için resmi referans olma olasılığını artıracağına dair bazı fikir birliği var gibi görünüyor.


2

Eski usul Netscape 4 JavaScript belgelerini bu amaç için çok yararlı buluyorum . Açıkça tamamen modası geçmiş olsalar da ve Katmanlar gibi içlerindeki bazı DOM özellikleri çoktan kayboldu, dil temelleri için gerçekten sağlamlar.

IE üstünlüğü ve ECMA standardizasyon gün önce, Netscape'in JavaScript çünkü budur kesin JavaScript. Diğer tarayıcılar, eski belgelerde gördüğünüz şeyi tam olarak uygulamak zorunda kaldı.

Ayrıca, standart belgelerin standartlarına göre bile tam bir korku veren ECMA-262 belgesine göre okumak çok daha kolaydır.



0

"Resmi" derken, "JavaScript'ten sorumlu kişiler tarafından yazılmış" demek istediğinizi düşünüyorum.

Burada gerçekten spekülasyon yapıyoruz, ancak JavaScript'ten (ECMA) sorumlu kişiler bundan doğrudan para kazanmazlar ve muhtemelen referans belgeleri yazma konusunda herhangi bir özel beceriye sahip değildir. Dolayısıyla, iyi bir referans yazma konusunda ne teşvikleri ne de yetenekleri var.

Şahsen, JavaScript'i seviyorum : O'Reilly'nin Kesin Kılavuzu . Kasım ayında altıncı baskısı çıkacak.


2
Evet onlar. Sun, JavaScript'in ticari markasının sahibidir ancak lisansını Netscape'e vermiştir. Oracle Sun'ı satın aldı, dolayısıyla artık Oracle ticari markanın sahibidir (hala Mozilla'ya lisans veriyorlar). HTML ve CSS, W3C tarafından tanımlanır, bu nedenle bu farklı bir konu. Firefox'taki JS motoru, başka hiçbir tarayıcıda bulunmayan birçok özel (ve harika) özellik içerir. JavaScript'in yaratıcısı (Brendan Eich), resmi ECMAScript komitesinde ve Mozilla için de çalışıyor.
Pauan

1
Ek olarak, şu bağlantıya dikkat edin: en.wikipedia.org/wiki/ECMAScript#Dialects Firefox, daha önce belirtildiği gibi nesne / dizi yok etme / kavrama gibi diğer tarayıcılarda bulunmayan birçok gelişmiş özellik içeren "JavaScript 1.8.5" olarak bilinen bir şeye sahiptir. , oluşturucular / yineleyiciler, let blokları / ifadeleri vb. Ayrıca, bu bağlantıdaki 2. dipnota da dikkat edin, "Mozilla, JavaScript'in resmi sürümünü yönetir. JavaScript" uyumluluğu "iddiasında bulunan Mozilla dışı uygulamaların çoğu aslında JavaScript uzantılarının çoğunu desteklemez; bunun yerine ECMA-262, 3. basımı hedefliyorlar. "
Pauan

1
ECMAScript'in JavaScript'ten farklı olduğunu not edeceğim. ECMAScript, Ecma tarafından tanımlanan bir standarttır. Tarayıcılar genellikle ECMAScript standardını destekleme konusunda oldukça iyidirler ve çoğu insan "JavaScript" dediğinde gerçekten kastettiği şey ECMAScript'tir. Durum ve terminolojinin çok kafa karıştırıcı olması talihsiz bir durum, ama işte burada. Dolayısıyla, çoğunlukla JavaScript'in gayri resmi tanımı "tarayıcılar ne yaparsa yapsın" şeklindedir, ancak resmi olarak Mozilla bundan gerçekten sorumludur.
Pauan

1
Bunun anlamı, bir "resmi JavaScript referansı" isteyen herhangi bir sorunun doğru cevaplanamayacak kadar belirsiz olduğudur. Resmi ECMAScript standardına, tarayıcılarda JavaScript'in gerçek uygulamalarına, MDC'ye (Firefox'taki resmi JavaScript uygulamasını kapsar) ve tabii ki w3schools gibi çok popüler resmi olmayan belgelere sahipsiniz. Hepsi kullanışlıdır, yani Python için olduğu gibi gerçekten "tek bir doğru" referans yoktur.
Pauan

2
(belki oh iyi ... ziyade yorumların bir dizi daha, gerçek bir cevap olarak bu gönderdiniz olmalı)
Pauan

-1

Daniel Krook'un bazı açıklamalar ve örnekler kullanmasına rağmen apidoc'unu gerçekten seviyorum . Gerçekten bir krook w3school mashup'ı görmek isterim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.