MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Ikhtisar Teknologi JavaScript

Terjemahan ini belum lengkap. Mohon bantu menerjemahkan artikel ini dari Bahasa Inggris.

Pengantar

Jika HTML untuk mengatur struktur dan konten dari halaman web dan CSS untuk menetapkan format dan tampilannya, maka JavaScript digunakan untuk menambah interaksi pada halaman web dan menciptakan aplikasi web yang kaya.

Namun, istilah "JavaScript" seperti yang dikenal pada konteks browser web berisi beberapa elemen yang sangat berbeda. Salah satunya adalah bahasa intinya (ECMAScript), yang lainnya adalah koleksi dari Web APIs, termasuk DOM (Document Object Model).

Bahasa inti (ECMAScript) JavaScript

Bahasa inti dari JavaScript distandarisasi oleh komite ECMA TC39 sebagai bahasa yang bernama ECMAScript.

Bahasa inti ini juga digunakan pada lingkungan non-browser, misalnya node.js.

Apa yang termasuk dalam lingkup ECMAScript?

Diantaranya, ECMAScript menetapkan:

  • Sintaks bahasa (aturan parsing, keywords, control flow, object literal initialization...)
  • Mekanisme penanganan Error (throw, try/catch, kemampuan membuat tipe Error yang ditetapkan-pengguna)
  • Tipe (boolean, number, string, function, object...)
  • Global object. Didalam browser, global object ini adalah window object, namun ECMAScript hanya menetapkan APIs tidak spesifik pada browser, contohnya parseInt, parseFloat, decodeURI, encodeURI...
  • Mekanisme pewarisan berbasis-prototipe
  • Built-in objects dan functions (JSON, Math, Array.prototype methods, Object introspection methods...)
  • Mode strict

Dukungan browser

Pada Oktober 2016, versi terbaru dari sebagian besar browser Web sudah menerapkan ECMAScript 5.1 dan ECMAScript 2015, namun versi yang lebih lama (yang masih digunakan) hanya menerapkan ECMAScript 5.

Masa depan

ECMAScript Edisi ke-6 mayor telah secara resmi disetujui dan diumumkan sebagai standar pada 17 Juni 1015 oleh ECMA General Assembly. Sejak saat itu Edisi ECMAScript diumumkan secara tahunan.

API Internasionalisasi

Spesifikasi API Internasionalisasi ECMAScript merupakan tambahan dari Spesifikasi Bahasa ECMAScript, yang juga distandarisasi oleh Ecma TC39. API internasionalisasi menyediakan kolasi (perbandingan string), format angka, format tanggal dan jam untuk aplikasi JavaScript, memungkinkan aplikasi memilih bahasa dan menyesuaikan fungsi sesuai kebutuhannya. Standar awal telah disetujui pada Desember 2012; status impementasinya dalam browser dicatat di dokumentasi Intl object. Saat ini spesifikasi Internasionalisasi juga disahkan secara tahunan dan browser secara konsisten meningkatkan implementasinya.

API DOM

WebIDL

WebIDL specification memberikan perekat antara teknologi DOM dan ECMAScript.

Inti dari DOM

Document Object Model (DOM) adalah bahasa konvensi independen lintas platform untuk mewakili dan berinteraksi dengan objects dalam dokumen HTML, XHTML dan XML. Objects didalam DOM tree dapat dialamatkan dan dimanipulasi dengan menggunakan methods pada objects. Core Document Object Model yang distandarisasi oleh W3C, menetapkan antarmuka bahasa-agnostik untuk mengabstaraksi dokumen HTML dan XML sebagai objects, dan juga menetapkan mekanisme untuk memanipulasi abstraksi ini. Diantara yang ditetapkan oleh DOM, kita dapat menemukan:

  • Struktur dokumen, tree model, dan arsitektur DOM Event didalam DOM core: Node, Element, DocumentFragment, Document, DOMImplementation, Event, EventTarget, …
  • Sebuah penetapan yang tidak ketat untuk DOM Event Architecture, termasuk events tertentu didalam DOM events.
  • Dan yang lainnya seperti DOM Traversal dan DOM Range.

Dari sudut pandang ECMAScript, objects yang didefinisikan di spesifikasi DOM disebut "host objects".

HTML DOM

Bahasa markup Web (HTML) yang ditetapkan dari sisi DOM. Seperti dalam konsep abstrak yang dibahas diatas pada Inti DOM, HTML juga didefinisikan sebagai sebuah elemen. The HTML DOM menyertakan properti className pada elemen HTML, or APIs seperti document.body.

Spesifikasi HTML juga menetapkan batasan pada dokumen; misalnya, ia memerlukan semua elemen anak dari sebuah ul untuk mewakili sebuah daftar tak urut, elemen li untuk mewakili daftar item. Secara umum, ia juga melarang penggunaan elemen dan atribut yang tidak didefinisikan dalam standar.

Ingin mengetahui Document object, Window object, dan elemen DOM lainnya? Baca DOM documentation.

API penting lainnya

  • Fungsi setTimeout dan setInterval. Fungsi yang ditetapkan pertama kali pada antarmuka Window didalam standar HTML.
  • XMLHttpRequest memungkinkan untuk mengrim permintaan HTTP asynchronous.
  • CSS Object Model abstraksi aturan CSS sebagai objects.
  • WebWorkers memungkinkan komputasi paralel.
  • WebSockets memungkinkan komunikasi tingkat-rendah secara dua arah.
  • Canvas 2D Context merupakan API drawing untuk <canvas>.

Dukungan browser

Seperti kata pengembang web yang berpengalaman, DOM berantakan. Dukungan fitur-fitur DOM antar browser bervarasi, terutama disebabkan karena banyak fitur yang penting dari DOM sangat tidak jelas, spesifikasi (jika ada) dan browser web yang berbeda menambahkan fitur yang tidak kompatibel untuk overlapping use cases (misalnya Internet Explorer event model). Pada Juni 2011, W3C dan khususnya WHATWG menetapkan fitur-fitur lama secara rinci untuk meningkatkan interoperabilitas, dan browser pada akhirnya dapat meningkatkan implementasi mereka berdasarkan spesifikasi ini.

Sebuah teknik umum, meskipun mungkin bukan yang paling dapat diandalkan, pendekatan kompatibilitas lintas browser adalah dengan menggunakan pustaka JavaScript, yang menggunakan fitur DOM abstrak untuk menjaga API mereka tetap bekerja di browser yang berbeda. Beberapa framework yang paling banyak digunakan adalah jQuery, prototype, dan YUI.

Tag Dokumen dan Kontributor

 Kontributor untuk laman ini: arifpedia
 Terakhir diperbarui oleh: arifpedia,