Mengapa tidak ada referensi JavaScript RESMI? [Tutup]

91

Saya mencoba mencari referensi JavaScript, tetapi tidak ada yang tersedia. Dua sumber terbaik yang disarankan adalah MDN (Mozilla Developer Network) dan W3Schools.

Mengapa?

huy
sumber
55
Hindari w3sekolah; bahan JS-nya cenderung sangat buruk, IMHO.
NickFitz
1
Maaf yang saya maksud adalah MDC; developer.mozilla.org/en/About_JavaScript
huy
9
Ini semacam komentar acak, tetapi secara pribadi saya pikir semua browser harus membuang semua bastardisasi Javascript / Jscript dan menerapkan jQuery secara native. :)
DisgruntledGoat
14
Wallpaper jQuery di atas DOM, tetapi sebenarnya tidak menggantikan JavaScript.
Rob
2
@huy MDN, bukan MDC atau MDE
maan81

Jawaban:

64

Ini tidak seperti ada rilis JavaScript resmi. Semua browser telah membuat mesin JavaScript mereka sendiri - beberapa menggunakan yang sama. Tetapi terutama Internet Explorer memiliki versinya sendiri yang tidak banyak mendukung apa yang didukung browser lain, sehingga sangat sulit untuk membuat referensi JavaScript umum.

Sunting:
Meskipun saya tahu ada standar resmi ECMA dan tim pengembangan, maksud saya adalah itu tidak terlalu penting selama browser (Internet Explorer) tidak sesuai dengan itu. Pada akhirnya, klien ingin JavaScript berfungsi juga untuk Internet Explorer. Mereka tidak akan peduli dengan standar ECMA, mereka hanya ingin itu berfungsi. Di sinilah perpustakaan JavaScript berperan, tapi itu cerita lain.

Ini masalah yang sama dengan HTML dan CSS, kami tidak dapat menggunakan alat ini untuk pengembangan aktif sampai:

  • Semua browser mendukungnya.
  • Kami menyediakan kode untuk browser agar mereka mendukungnya.
  • Tidak apa-apa, ini tidak berfungsi di semua browser.

Sunting2:
Internet Explorer semakin dekat dengan kuburan dengan proyek browser baru dari Microsoft: Edge. Ini, bagaimanapun, tidak benar-benar mengubah gambaran keseluruhan. Kami masih memiliki banyak browser berbeda yang perlu kami dukung. Pengembang terus mencoba mendorong batasan dari apa yang mungkin. Artinya kami sering mengalami masalah ini, beberapa versi browser yang ingin kami dukung tidak mendukung beberapa fitur standar (yang biasanya agak cair), yang berarti kami perlu mencari solusi atau menggunakan kerangka kerja yang mengimplementasikan built-in yang hilang. dalam fitur.

googletorp
sumber
Begitu, jadi browser yang berbeda memiliki penerapannya sendiri sesuai dengan standar ECMA-262 yang disebutkan Michael di atas?
huy
3
@huy: ya - dengan berbagai tingkat dukungan untuk / berbagai interpretasi dari standar itu, sayangnya ...
Andrzej Doyle
1
-1, Ada adalah standar resmi Javascript: itu disebut ECMAScript dan ada sebuah badan resmi di balik itu: en.wikipedia.org/wiki/Ecma_International
Hasen
Saya tidak yakin mengapa Anda memilih Internet Explorer lebih buruk dalam mendukung ECMA "standar" seperti browser lainnya.
5
@ ראובן: Karena memang / dulu. Untuk waktu yang lama IE tidak hanya memiliki banyak bug parah yang tidak dimiliki oleh browser lain, tetapi juga kehilangan fitur-fitur penting yang dimiliki browser lain. IE8 dan 9 telah mengejar banyak, jadi situasinya berubah. Tetapi selama bertahun-tahun IE sangat buruk, sementara browser lain memiliki dukungan ECMAScript yang baik. Selain itu, ECMAScript adalah standar. Saya tidak yakin mengapa Anda memasukkannya ke dalam tanda kutip.
Pauan
28

Anda dapat mencoba dengan situs ECMAscript resmi,

http://www.ecmascript.org/

tapi yang berguna sebenarnya adalah implementasi dari masing-masing browser.

Saya sangat menyukai cheatsheet dari Danny Goodman JavaScript Bible ini:

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

Pemenang
sumber
Lembar sontekan itu sudah mati. Bolehkah saya menyarankan caniuse.com?
Grinn
Terima kasih, saya menautkan ke tautan baru dan menjelaskan sedikit apa itu. Terimakasih atas peringatannya!
Victor
Bagus, saya akan memeriksanya.
Grinn
22

Menurut saya yang ini adalah "resmi": https://developer.mozilla.org/en/JavaScript

Anda juga memiliki Spesifikasi Bahasa ECMAScript, Edisi 5.1 (atau sebagai PDF , spesifikasi definitif) .

Dan dari Microsoft: Referensi Bahasa JavaScript : "Dokumentasi ini menjelaskan implementasi Microsoft dari JavaScript , yang sesuai dengan spesifikasi bahasa ECMAScript Edisi ke-5 . Dokumentasi ini juga menyediakan fitur tambahan yang tidak termasuk dalam Standar Ecma."

Espo
sumber
8
IE tidak memiliki mesin JavaScript - melainkan mengimplementasikan JScript (yang sebagian besar kompatibel). msdn.microsoft.com/en-us/library/yek4tbz0%28VS.85%29.aspx sepertinya referensi resmi untuk itu.
Quentin
3
Hmm ... developer.mozilla sangat membantu, tetapi saya tidak akan menyebutnya "resmi". Spesifikasi Bahasa ECMAScript lebih dekat dengan "resmi".
Steve Harrison
4
Spesifikasi Bahasa ECMAScript adalah referensi resmi untuk ECMAScript. JavaScript adalah superset dari ECMAScript, dibuat oleh Netscape, dan Mozilla mewarisi MDC dari Netscape (meskipun namanya telah berubah sejak saat itu)
Quentin
1 untuk standar ECMAScript.
Jason S
@Quentin - Menarik bahwa judul tautan MSDN yang Anda rujuk sekarang adalah "Referensi JavaScript" . Namun, artikel MSDN "JScript (ECMAScript3)" menyatakan: "JScript adalah implementasi Microsoft dari spesifikasi bahasa ECMA 262 (ECMAScript Edition 3). Dengan hanya beberapa pengecualian kecil (untuk menjaga kompatibilitas ke belakang), JScript adalah implementasi penuh dari standar ECMA. " .
DavidRR
8

Jika Anda menggunakan ECMAScript untuk web (99,9% orangnya), maka di luar sintaksis dasar bahasa (tercakup dalam spesifikasi ECMA-262 yang disebutkan di atas), yang mungkin Anda cari adalah referensi DOM - yang merupakan API ECMAScript yang digunakan untuk berinteraksi dengan dokumen web.

Saya sangat terkejut tidak ada yang menyebutkan DOM api jauh. Standar DOM W3C saat ini ada di sini: http://www.w3.org/TR/DOM-Level-2-Core/

(btw, untuk kebingungan penamaan - ECMAScript adalah nama standar resmi, dan "Javascript" dan "JScript" adalah "garpu" milik Netscape dan Microsoft)


sumber
3

Ada referensi resmi, hanya saja tidak dalam format yang sangat nyaman. Ini adalah spesifikasi ECMA-262 . Ini adalah satu dokumen PDF yang sangat besar, bukan sekumpulan halaman HTML yang dapat dicari.

Michael Aaron Safyan
sumber
3

Setiap revisi halaman JavaScript di MDC oleh anggota tim Dokumentasi Mozilla (seperti Eric Shepherd ) adalah resmi. JavaScript secara resmi dipelihara oleh Mozilla jadi hanya dokumentasi dari Mozilla yang resmi. Satu-satunya mesin yang mendukung JavaScript saat ini dibuat oleh Mozilla dan setiap mesin lain menerapkan ECMAScript. JavaScript dan ECMAScript memiliki beberapa perbedaan (misalnya, letpernyataan mengagumkan ).

Eli Grey
sumber
3

Sangat sulit untuk memiliki referensi "resmi" selama ada implementasi (di semua browser) dan ada spesifikasi (ECMAScript) tetapi tidak ada uji kesesuaian implementasi terhadap spesifikasi.

Namun sekarang, kami memiliki rangkaian kesesuaian EMCAScript 5 di http://es5conform.codeplex.com/ - dan tampaknya ada beberapa konsensus bahwa implementasi ECMAScript akan semakin dekat, membuat ECMAScript lebih cenderung menjadi referensi resmi untuk bahasa tersebut.

pengguna195021
sumber
2

Saya menemukan dokumen JavaScript Netscape 4 jadul sangat berguna untuk tujuan ini. Meskipun jelas benar-benar ketinggalan zaman, dan beberapa fitur DOM di dalamnya seperti Lapisan sudah lama hilang, untuk dasar-dasar bahasa fitur ini sangat solid.

Itu karena sebelum hari IE supremasi dan ECMA standarisasi, Netscape JavaScript adalah yang definitif JavaScript. Browser lain cukup banyak harus menerapkan persis seperti yang Anda lihat di dokumen lama itu.

Mereka juga lebih mudah dibaca daripada dokumen ECMA-262, yang bahkan menurut standar dokumen standar adalah horor mutlak.

bobince
sumber
1

Kutipan Wikipedia:

Awal di Netscape

Pada November 1996, Netscape mengirimkan JavaScript ke Ecma International ...

JavaScript secara resmi dikelola oleh Mozilla Foundation ...

Jadi menurut saya, ECMA itu standar dan Mozilla resmi.

SandroMarques
sumber
0

Dengan "resmi", saya pikir yang Anda maksud adalah "ditulis oleh orang-orang yang bertanggung jawab atas JavaScript".

Hanya berspekulasi di sini, tetapi orang-orang yang bertanggung jawab atas JavaScript (ECMA) tidak secara langsung menghasilkan uang darinya, dan mungkin tidak memiliki keahlian khusus dalam menulis dokumentasi referensi. Jadi mereka tidak memiliki insentif atau kemampuan untuk menulis referensi yang baik.

Secara pribadi, saya suka JavaScript: Panduan Definitif dari O'Reilly. Ada edisi keenam yang keluar pada bulan November.

Paul D. Waite
sumber
2
Ya begitulah. Sun memiliki merek dagang untuk JavaScript, tetapi melisensikannya ke Netscape. Oracle membeli Sun, jadi sekarang Oracle memiliki merek dagang tersebut (mereka masih melisensikannya ke Mozilla). HTML dan CSS ditentukan oleh W3C, jadi itu masalah yang berbeda. Mesin JS di Firefox berisi banyak fitur berpemilik (dan mengagumkan) yang tidak ditemukan di browser lain. Pencipta JavaScript (Brendan Eich) adalah anggota komite ECMAScript resmi, dan juga bekerja untuk Mozilla.
Pauan
1
Selain itu, perhatikan tautan ini: en.wikipedia.org/wiki/ECMAScript#Dialects Firefox memiliki apa yang dikenal sebagai "JavaScript 1.8.5" yang seperti telah disebutkan berisi banyak fitur lanjutan yang tidak ditemukan di browser lain seperti penghancuran objek / larik / pemahaman , generator / iterator, biarkan blok / pernyataan, dll. Perhatikan juga catatan kaki kedua di tautan itu, yang mengatakan "Mozilla mengelola versi resmi JavaScript. Sebagian besar implementasi non-Mozilla yang mengklaim" kepatuhan "JavaScript sebenarnya tidak mendukung sebagian besar ekstensi JavaScript; sebaliknya, mereka menargetkan ECMA-262, edisi 3. "
Pauan
1
Saya akan mencatat bahwa ECMAScript berbeda dari JavaScript. ECMAScript adalah standar yang ditentukan oleh Ecma. Browser biasanya cukup baik dalam mendukung standar ECMAScript, dan ketika kebanyakan orang mengatakan "JavaScript" yang sebenarnya mereka maksud adalah ECMAScript. Sayangnya situasi dan terminologi sangat membingungkan, tapi begitulah. Jadi, untuk sebagian besar, definisi informal JavaScript adalah "apa pun yang dilakukan browser", tetapi secara resmi, Mozilla memang bertanggung jawab untuk itu.
Pauan
1
Artinya, setiap pertanyaan yang meminta "referensi JavaScript resmi" terlalu kabur untuk dijawab secara akurat. Anda memiliki standar ECMAScript resmi, implementasi JavaScript yang sebenarnya di browser, MDC (yang mencakup implementasi JavaScript resmi di Firefox), dan tentu saja dokumentasi tidak resmi yang sangat populer seperti w3schools. Semuanya berguna, jadi sebenarnya tidak ada referensi "satu-satunya yang benar" seperti yang ada untuk, katakanlah, Python.
Pauan
2
(mungkin saya seharusnya memposting ini sebagai jawaban yang sebenarnya, daripada serangkaian komentar ... oh baiklah)
Pauan
-1

Saya sangat suka apidoc Daniel Krook , meskipun bisa menggunakan beberapa penjelasan dan contoh. Saya sangat ingin melihat mashup krook w3sekolah.

Ben
sumber