Komputer tidak dapat benar-benar menjalankan kode yang Anda tulis JavaScript (atau bahasa lain apa pun dalam hal ini). Komputer hanya dapat menjalankan kode mesin. Kode mesin yang dijalankan oleh komputer tertentu didefinisikan di dalam prosesor yang akan menjalankan perintah itu dan dapat berbeda untuk prosesor yang berbeda.
Jelas, menulis kode mesin sulit bagi orang untuk melakukan (adalah 125 perintah tambahan atau 126 atau mungkin 27). Untuk mengatasi masalah itu, apa yang dikenal sebagai bahasa assembly dibuat. Bahasa-bahasa ini menggunakan nama-nama yang lebih jelas untuk perintah (seperti ADD untuk menambahkan) dan dengan demikian menghilangkan kebutuhan untuk mengingat kode mesin yang tepat. Bahasa assembly masih memiliki hubungan satu ke satu dengan prosesor dan kode mesin tertentu tempat komputer mengonversi perintah-perintah tersebut menjadi.
Bahasa Assembly Harus Disusun atau Diartikan
Sangat awal disadari bahwa lebih mudah untuk menulis bahasa diperlukan dan bahwa komputer itu sendiri dapat digunakan untuk menerjemahkannya ke dalam instruksi kode mesin yang benar-benar dapat dimengerti oleh komputer. Ada dua pendekatan yang bisa diambil dengan terjemahan ini dan kedua alternatif dipilih (salah satu atau yang lain akan digunakan tergantung pada bahasa yang digunakan dan di mana itu sedang dijalankan).
Bahasa yang dikompilasi adalah di mana setelah program telah ditulis Anda memberi makan kode melalui program yang disebut a penyusun dan yang menghasilkan versi kode mesin dari program. Ketika Anda ingin menjalankan program, Anda cukup memanggil versi kode mesin. Jika Anda membuat perubahan pada program, Anda perlu mengkompilasi ulang sebelum dapat menguji kode yang diubah.
Bahasa yang ditafsirkan adalah bahasa di mana instruksi dikonversi dari apa yang Anda tulis ke dalam kode mesin saat program sedang dijalankan. Bahasa yang ditafsirkan pada dasarnya mendapat instruksi dari sumber program, mengubahnya menjadi mesin kode, jalankan kode mesin itu dan kemudian ambil instruksi berikutnya dari sumber untuk mengulangi proses.
Dua Varian dalam Mengkompilasi dan Menafsirkan
Satu varian menggunakan proses dua tahap. Dengan varian ini, sumber program Anda dikompilasi tidak secara langsung ke dalam kode mesin tetapi alih-alih dikonversi ke bahasa seperti perakitan yang masih independen dari yang khusus prosesor Ketika Anda ingin menjalankan kode itu kemudian memproses kode yang dikompilasi melalui juru bahasa khusus untuk prosesor sehingga mendapatkan kode mesin yang sesuai dengan prosesor itu. Pendekatan ini memiliki banyak manfaat mengkompilasi sambil mempertahankan independensi prosesor karena kode kompilasi yang sama dapat ditafsirkan oleh banyak prosesor yang berbeda. Java adalah salah satu bahasa yang sering menggunakan varian ini.
Varian lainnya disebut kompiler Just in Time (atau JIT). Dengan pendekatan ini, Anda tidak benar-benar menjalankan kompiler setelah Anda menulis kode. Sebaliknya, itu terjadi secara otomatis ketika Anda menjalankan kode. Menggunakan kompiler Just in Time kode tidak diinterpretasikan pernyataan demi pernyataan, itu dikompilasi semua dalam satu pergi setiap kali ketika dipanggil untuk dijalankan dan kemudian versi kompilasi yang baru saja dibuat adalah apa yang didapat Lari. Pendekatan ini membuatnya sangat mirip dengan kode yang sedang ditafsirkan kecuali bahwa alih-alih hanya ditemukan kesalahan ketika pernyataan dengan kesalahan tercapai, kesalahan apa pun yang terdeteksi oleh kompiler mengakibatkan tidak ada kode yang dijalankan alih-alih semua kode hingga saat itu menjadi Lari. PHP adalah contoh dari bahasa yang biasanya menggunakan hanya dalam kompilasi waktu.
Apakah JavaScript Dikompilasi atau Diartikan?
Jadi sekarang kita tahu apa artinya kode yang ditafsirkan dan kode yang dikompilasi, pertanyaan yang perlu kita jawab selanjutnya adalah apa hubungannya semua ini dengan JavaScript? Bergantung pada tempat Anda menjalankan JavaScript, kode tersebut dapat dikompilasi atau ditafsirkan atau menggunakan salah satu dari dua varian lain yang disebutkan. Sebagian besar waktu Andamenjalankan JavaScript Anda di browser web dan di sana JavaScript biasanya diartikan.
Bahasa yang ditafsirkan biasanya lebih lambat dari bahasa yang dikompilasi. Ada dua alasan untuk ini. Pertama kode yang akan ditafsirkan sebenarnya harus ditafsirkan sebelum dapat dijalankan dan yang kedua terjadi setiap kali pernyataan itu dijalankan (tidak hanya setiap kali Anda menjalankan JavaScript tetapi jika itu dalam Sebuah lingkaran maka perlu dilakukan setiap kali di loop). Ini berarti bahwa kode yang ditulis dalam JavaScript akan berjalan lebih lambat daripada kode yang ditulis dalam banyak bahasa lain.
Bagaimana mengetahui hal ini membantu kami di mana JavaScript adalah satu-satunya bahasa yang tersedia untuk kami jalankan di semua browser web? Penerjemah JavaScript itu sendiri yang dibangun ke dalam browser web tidak ditulis dalam JavaScript. Sebaliknya, itu ditulis dalam beberapa bahasa lain yang kemudian dikompilasi. Artinya, Anda dapat membuat JavaScript Anda berjalan lebih cepat jika Anda dapat memanfaatkan perintah apa pun yang disediakan JavaScript yang memungkinkan Anda melepas tugas ke mesin JavaScript itu sendiri.
Contoh untuk Mendapatkan JavaScript untuk Menjalankan Lebih Cepat
Contoh dari hal ini adalah bahwa beberapa tetapi tidak semua browser telah menerapkan metode document.getElementsByClassName () dalam mesin JavaScript sementara yang lain belum melakukannya. Ketika kita membutuhkan fungsi khusus ini, kita dapat membuat kode berjalan lebih cepat di browser-browser di mana mesin JavaScript menyediakannya dengan menggunakan fitur sensing untuk melihat apakah metode tersebut sudah ada dan hanya membuat versi kita sendiri dari kode itu dalam JavaScript ketika mesin JavaScript tidak menyediakannya kami. Di mana mesin JavaScript memang menyediakan fungsionalitas itu, ia harus berjalan lebih cepat jika kami menggunakannya daripada menjalankan versi kami sendiri yang ditulis dalam JavaScript. Hal yang sama berlaku untuk setiap pemrosesan yang disediakan mesin JavaScript untuk kami hubungi secara langsung.
Juga akan ada contoh di mana JavaScript menyediakan beberapa cara untuk membuat permintaan yang sama. Dalam hal itu, salah satu cara mengakses informasi mungkin lebih spesifik daripada yang lain. Misalnya document.getElementsByTagName ('table') [0] .tBodies dan document.getElementsByTagName ('table') [0] .getElementsByTagName ('tbody') keduanya mengambil nodelist yang sama dari tag tbody di tabel pertama di halaman web namun yang pertama adalah perintah khusus untuk mengambil tag tbody di mana yang kedua mengidentifikasi bahwa kami mengambil tag tbody dalam parameter dan nilai lainnya dapat diganti untuk mengambil lainnya tag. Di sebagian besar browser, varian kode yang lebih pendek dan lebih spesifik akan berjalan lebih cepat (dalam beberapa kasus jauh lebih cepat) daripada varian kedua dan karenanya masuk akal untuk menggunakan yang lebih pendek dan lebih spesifik Versi: kapan. Ini juga membuat kode lebih mudah dibaca dan dipelihara.
Sekarang dalam banyak kasus ini, perbedaan aktual dalam waktu pemrosesan akan sangat kecil dan hanya akan kapan Anda menambahkan banyak pilihan kode seperti itu bersama-sama sehingga Anda akan mendapatkan perbedaan nyata dalam waktu yang dibutuhkan kode Anda Lari. Meskipun jarang mengubah kode Anda untuk membuatnya berjalan lebih cepat akan membuat kode secara signifikan lebih lama atau lebih sulit untuk dipelihara, dan sering kali kebalikannya akan benar. Ada juga manfaat tambahan bahwa versi mesin JavaScript yang akan datang dapat dibuat yang mempercepat varian yang lebih spesifik lebih lanjut sehingga menggunakan varian spesifik dapat berarti bahwa kode Anda akan berjalan lebih cepat di masa depan tanpa Anda harus mengubah apa pun.