Semua ini dimulai ketika saya mencari cara untuk menguji halaman web saya untuk kesesuaian JavaScript seperti W3C HTML Validator . Saya belum menemukannya. Jadi beri tahu saya jika Anda tahu ada ...
Saya mencari halaman JavaScript resmi dan menemukan ECMA Script . Orang-orang ini telah menstandarisasi bahasa scripting (saya tidak merasa ingin menyebutnya JavaScript lagi!) Dan menyebutnya ECMA-262 ( Wikipedia ). Karya terbaru mereka adalah Edisi 5.1
JavaScript dikembangkan oleh Mozilla Corporation dan versi stabil terakhir mereka adalah 1.8.5 ( lihat ini ) yang didasarkan pada edisi ECMA 5.1
The halaman Wikipedia terkait menyebutkan dialek. JavaScript 1.8.5 Mozilla terdaftar sebagai dialek bersama dengan JScript 9 (IE) dan JavaScript ( V8 Chrome [ Wiki ]) dan banyak lainnya. Apakah saya mengerti bahwa JavaScript 1.8.5 adalah turunan dari ECMA-262 dan SpiderMonkey [ Wiki ] adalah mesin yang menjalankannya? Dan Chrome memiliki dialeknya sendiri dan mesin V8 adalah program yang menjalankannya?
Dengan semua dialek yang didasarkan pada ECMA-262, apa yang tidak lagi saya mengerti adalah "Apa itu JavaScript "? Apakah ada bahasa scripting lintas browser yang benar-benar? Apakah berbagai pelaksana berkumpul untuk menyetujui kompatibilitas lintas dialek? Apakah ini upaya ECMA?
sumber
Jawaban:
Hampir semua bahasa dewasa didefinisikan oleh spesifikasi, dan kompiler atau juru bahasa mencoba mengikuti standar yang ditentukan dalam spesifikasi itu. Tetapi sangat jarang mereka berhasil, kecuali standar didefinisikan oleh penulis bahasa.
Anda dapat menemukan standar C ++ 2003 , spesifikasi C # 4 , spesifikasi Java 7 dan banyak lagi yang online. Banyak dari ini memiliki nomor standardisasi ECMA atau ISO. Ini hanya organisasi dengan mana Anda dapat mendaftarkan standar dan membuatnya lebih resmi.
Ruby secara historis melakukan hal-hal sedikit berbeda, memiliki serangkaian tes yang dapat dieksekusi sebagai spesifikasi . Jadi, jika Anda ingin menulis seorang juru bahasa dan menyebutnya Ruby standar, Anda hanya perlu membuat seorang juru bahasa yang lulus semua tes tersebut. Tetapi bahkan Ruby kemungkinan akan menjadi spesifikasi yang lebih formal pada akhirnya.
Javascript tidak berbeda, kecuali mungkin dalam perkembangannya.
Javascript pertama kali dibuat oleh Netscape. Mereka menyebutnya LiveScript, tetapi terlihat mirip dengan Java dan mereka membuat kesepakatan dengan Sun atas nama, yang menguntungkan baik pemasaran Netscape dan Java. Microsoft memiliki VBScript dan (karena alasan yang mungkin hilang karena dugaan) pada dasarnya menyalin Javascript, tetapi nama itu dimiliki oleh Sun, jadi mereka dengan nakal menyebutnya JScript.
Tapi JScript, sementara sangat mirip dengan Javascript dalam sintaksis, membuat banyak penggunaan COM - misalnya, IE5 dan 6 instantiate objek XMLHttpRequest menggunakan
new ActiveXObject("Microsoft.XMLHTTP");
.Maka, "dialek" Javascript yang paralel, serupa tetapi juga berbeda lahir. Seiring waktu, berbagai kelompok yang memiliki browser dengan pangsa pasar lebih sedikit daripada IE telah mencoba untuk menstandarisasi bahasa, dan selama bertahun-tahun Microsoft menolak. Sampai V8.
V8 cepat. Ini menetapkan standar pasar yang sama sekali baru. Itu membuat segalanya tampak miskin.
Dan, melalui berbagai kasus antimonopoli terhadap Microsoft, IE kehilangan pangsa pasar. Tiba-tiba, Microsoft berkepentingan untuk mendukung standardisasi. Kami belum ada di sana, tapi masih di jalur yang benar.
Sementara itu, V8 adalah open-source, yang memungkinkan orang untuk mulai memikirkan penggunaan baru untuk Javascript parser cepat, seperti Node.js .
Tetapi, untuk kembali ke pertanyaan Anda: Apa itu Javascript? Ini adalah nama umum (dan asli) untuk ECMAScript, spesifikasi untuk bahasa prototipe yang umum, tetapi tidak secara eksklusif, digunakan untuk menavigasi dan memanipulasi model objek domain dalam sebuah broswer.
ECMA-262 hanyalah definisi standar, seperti ECMA-334 adalah definisi standar untuk C #. ECMAScript adalah satu-satunya nama yang disetujui oleh semua pihak yang berkepentingan, pada tahun '99, ketika ECMA-262 ditulis.
sumber
Javascript adalah implementasi ECMAScript yang umum digunakan. Ini situasi yang sangat mirip dengan keluarga Skema . Dalam Skema, Anda memiliki spesifikasi yang sangat formal. Versi saat ini adalah R6RS meskipun R5RS sejauh ini merupakan standar yang lebih umum diimplementasikan pada posting ini. Implementasinya lebih tersebar daripada ECMAScript karena usia Skema dan filosofi umum.
Javascript menjadi hal yang umum sekarang sebagian besar karena pertumbuhan eksplosif dalam pangsa pasar Firefox Mozilla dan Google Chrome. Ini mendapatkan pijakan awalnya dengan Netscape Navigator yang akhirnya berubah menjadi browser Mozilla dan kemudian menjadi Firefox (dan Iceweasel jika Anda menjalankan dengan kerumunan Skema).
Sekarang di sinilah ia menjadi sedikit tidak pasti. Sebagian besar kinerja Javascript berasal dari parser dan mesin menjalankannya. Di sinilah perbedaan nyata antara browser menjadi jelas. Spidermonkey menjalankan Javascript secara berbeda dari V8. Javascript masih memiliki bintik-bintik kasar seperti kurangnya perpustakaan yang sepenuhnya umum, meskipun itu sedang dikerjakan.
Jadi jika Javascript adalah C ++, maka ECMAScript akan menjadi C ++ 11, dengan UNIX dan G ++ menjadi yang paling dekat dengan "standar" sedangkan C ++ untuk .NET dan Objective C ++ terletak lebih jauh seperti Actionscript dari ECMAScript
sumber