Java - Nashorn JavaScript Engine (Versi Bahasa Melayu)

Hai penyuka-penyuka pemrogram! Saya sangat gembira untuk menjadi pemandu anda dalam perjalanan yang menarik ini ke dunia Java dan Nashorn JavaScript Engine. Sebagai seseorang yang telah mengajar ilmu komputer selama lebih daripada satu dekad, saya dapat memberikan jaminan kepada anda bahawa ini akan menjadi pengalaman yang menyeronokkan dan penyedapkan. Jadi, mari kita penyelam!

Java - Nashorn JavaScript

Apakah itu Nashorn JavaScript Engine?

Nashorn (disebut "nass-horn") adalah enjin JavaScript yang ringan dan berprestasi tinggi yang diperkenalkan dengan Java 8. Ia seperti rakit antara Java dan JavaScript, membenarkan anda untuk menjalankan kod JavaScript di atas aplikasi Java. Menarik, bukan?

Sebuah Sedikit Sejarah

Pada masa-masa awal saya mengajar, kita perlu menggunakan persekitaran yang berbeza untuk Java dan JavaScript. Ia seperti cuba untuk membuat rakit kacang tanah dan jelley dengan dua rakat berbeza! Nashorn mengubah semua itu, membawa kedua-dua bahasa yang kuat ini bersama-sama dalam satu kombinasi yang menyelerakan.

Menjalankan JavaScript melalui Alatan Baris Perintah

Mari kita mula dengan sesuatu yang ringan. Nashorn datang dengan alat baris perintah yang dipanggil jjs yang membenarkan anda untuk menjalankan JavaScript secara langsung dari terminal anda.

Contoh 1: Hello, Nashorn!

Buka rakit penyuruh anda dan taip:

jjs
print("Hello, Nashorn!");

Anda sepatutnya dapat lihat "Hello, Nashorn!" yang dicetak di atas skrin anda. Tahniah! Anda baru saja menjalankan kod JavaScript pertama anda menggunakan Nashorn.

Menjalankan JavaScript Secara Langsung di atas Rakit Penyuruh

Anda juga boleh menjalankan fail JavaScript secara langsung dari baris perintah.

Contoh 2: Menjalankan Fail JavaScript

  1. Cipta fail bernama greet.js dengan kandungan berikut:
var name = "Alice";
print("Hello, " + name + "!");
  1. Jalankan ia menggunakan jjs:
jjs greet.js

Anda sepatutnya dapat lihat "Hello, Alice!" yang dicetak di atas skrin anda.

Menghantar Argumen ke jjs

Nashorn membenarkan anda untuk menghantar argumen ke kod JavaScript anda, seperti yang anda akan lakukan dengan Java.

Contoh 3: Menghantar Argumen

Cipta fail bernama greet_with_args.js:

var name = $ARG[0];
print("Hello, " + name + "!");

Jalankan ia dengan argumen:

jjs greet_with_args.js -- Bob

Anda sepatutnya dapat lihat "Hello, Bob!" yang dicetak.

Memanggil JavaScript dari Java

Sekarang, mari kita ke bahagian yang benar-benar menarik - memanggil JavaScript dari dalam kod Java anda!

Contoh 4: Menyederhanaan JavaScript di atas Java

import javax.script.*;

public class JavaScriptInJava {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");

engine.eval("print('Hello from JavaScript!');");
}
}

Apabila anda menjalankan program Java ini, ia akan mencetak "Hello from JavaScript!" menggunakan enjin Nashorn.

Memanggil Java dari JavaScript

Kuasa sebenar Nashorn datang dari keupayaannya untuk menggunakan kelas dan kaedah Java di atas kod JavaScript.

Contoh 5: Menggunakan Kelas Java di atas JavaScript

import javax.script.*;

public class JavaInJavaScript {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");

engine.eval("var ArrayList = Java.type('java.util.ArrayList');" +
"var list = new ArrayList();" +
"list.add('Hello');" +
"list.add('World');" +
"print(list);");
}
}

Kod ini membuatkan ArrayList Java, menambah elemen kepadanya, dan mencetaknya - semua dari atas JavaScript!

Fitur Lanjutan

Nashorn menawarkan banyak fitur lanjutan yang menjadikannya alat yang berkuasa untuk pembangun Java.

Contoh 6: Menggunakan Lambda Eksresi Java 8

import javax.script.*;

public class LambdaInNashorn {
public static void main(String[] args) throws ScriptException {
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");

engine.eval("var list = [1, 2, 3, 4, 5];" +
"list.forEach(function(num) { print(num * 2); });");
}
}

Contoh ini menunjukkan bagaimana anda boleh menggunakan eksresi lambda Java 8 di atas kod JavaScript yang dijalankan di atas Nashorn.

Jadual Kaedah

Berikut adalah jadual beberapa kaedah penting yang anda boleh gunakan dengan Nashorn:

Kaedah Keterangan
ScriptEngineManager.getEngineByName("nashorn") Dapatkan enjin skrip Nashorn
ScriptEngine.eval(String script) Menyederhanaan skrip JavaScript
ScriptEngine.put(String key, Object value) Tetapkan pembolehubah di atas enjin skrip
ScriptEngine.get(String key) Dapatkan pembolehubah dari enjin skrip
Invocable.invokeFunction(String name, Object... args) Panggil fungsi JavaScript

Penutup

Dan itu adalah semua, rakyat! Kita baru saja menggaruk permukaan yang Nashorn boleh lakukan, tetapi saya harap pengenalan ini telah membangkitkan rasa penyembuhan anda. Ingat, kunci untuk menguasai pemrograman adalah latihan, jadi jangan takut untuk eksperimen dengan contoh ini dan cipta yang anda sendiri.

Seperti saya sentiasa memberitahu pelajar saya, pemrograman adalah seperti belajar untuk berbasikal - ia mungkin kelihatan menakutkan pada awalnya, tetapi dengan latihan, anda akan bergerak pantas dalam masa yang singkat. Dan siapa tahu? Mungkin suatu hari anda akan mengajar orang lain tentang keajaiban Nashorn!

Terus koding, terus belajar, dan yang paling penting, bersenang-senang! Sampaijumpa lagi, ini adalah guru ilmu komputer yang kawan baik anda yang menandatangani off. Selamat ber-koding!

Credits: Image by storyset