亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Jadual Kandungan
Apakah enjin JavaScript Nashorn?
Nashorn與其他JavaScript引擎相比如何?
Bagaimana menggunakan Nashorn dalam aplikasi Java saya?
Apakah faedah menggunakan Nashorn?
Adakah Oracle masih mengekalkan Nashorn?
Apakah beberapa alternatif kepada Nashorn?
Bolehkah saya menggunakan ciri -ciri ES6 di Nashorn?
Bagaimana untuk debug kod JavaScript yang dilaksanakan oleh Nashorn?
Bolehkah saya menggunakan modul Node.js di Nashorn?
Bagaimana untuk memanggil kaedah Java dari kod JavaScript yang dilaksanakan oleh Nashorn?
Rumah hujung hadapan web tutorial js Memperkenalkan Enjin JavaScript Nashorn

Memperkenalkan Enjin JavaScript Nashorn

Feb 21, 2025 am 10:21 AM

Introducing the Nashorn JavaScript Engine

Oracle telah membangunkan enjin JavaScript baru yang dipanggil Nashorn dalam bahasa pengaturcaraan Java dan mengeluarkannya dengan Java 8. Matlamat Nashorn adalah untuk melaksanakan persekitaran runtime JavaScript yang ringan dan berprestasi tinggi di Java dan menggunakan JVM asli. Dengan menggunakan Nashorn, pemaju boleh membenamkan JavaScript dalam aplikasi Java dan memanggil kaedah dan kelas Java dari kod JavaScript.

mata teras

    Nashorn adalah enjin JavaScript berprestasi tinggi yang dibangunkan oleh Oracle menggunakan Java. Ia membolehkan pemaju untuk membenamkan JavaScript dalam aplikasi Java dan memanggil kaedah dan kelas Java dari kod JavaScript.
  • Matlamat reka bentuk Nashorn termasuk: berdasarkan spesifikasi bahasa ECMASCRIP Prestasi yang lebih baik daripada pendahulunya, Rhino.
  • Dengan Nashorn, JavaScript boleh digunakan sebagai bahasa skrip gaya shell yang kuat, memanfaatkan kesederhanaan JavaScript dan API Java yang kaya. Ia boleh digunakan dalam tetapan untuk aplikasi klien, aplikasi pelayan, aplikasi mudah alih, atau Internet Perkara Kecil (IoT).

Mengapa menyerah badak?

Rhino adalah pendahulu Nashorn. Ia bermula dengan projek Netscape pada tahun 1997 dan dikeluarkan pada tahun 1998.

Rhino telah dikeluarkan selama 16 tahun, dan enjin JavaScript ini telah memenuhi misinya. Oleh itu, pasukan Java memutuskan untuk membangunkan enjin JavaScript baru dari awal, dan bukannya menulis semula yang sedia ada. Ini melahirkan Nashorn (menarik, Nashorn bermaksud badak dalam bahasa Jerman).

Hampir semua orang menggunakan JavaScript dalam pelayar mereka, dan sesetengah orang menggunakannya pada pelayan juga (seperti Node.js), tetapi Nashorn mempunyai tujuan pembangunan yang berbeza. Dengan menggunakan Nashorn, pemaju boleh melaksanakan fungsi berikut:

    Jalankan JavaScript sebagai kod desktop asli.
  • skrip shell ditulis menggunakan JavaScript.
  • memanggil kelas dan kaedah Java dari kod JavaScript.

Matlamat Nashorn

Apabila merancang Nashorn, pemaju menetapkan satu siri matlamat untuknya:

    Ia harus berdasarkan spesifikasi bahasa Versi ECMAScript-262 5.1 dan mesti lulus ujian keserasian ECMAScript-262.
  • Ia harus menyokong API javax.script (JSR 223).
  • Ia sepatutnya membenarkan Java dipanggil dari JavaScript dan sebaliknya.
  • Ia harus menentukan alat perintah JJS untuk menilai kod JavaScript dalam skrip "Shebang" (biasanya bermula dengan #!/Bin/sh), di sini dokumentasi, dan edit rentetan.
  • prestasinya harus bertambah baik daripada badak.
  • Ia tidak sepatutnya menimbulkan risiko keselamatan.
Di samping itu, tiada siapa yang memutuskan bahawa Nashorn tidak termasuk ciri debugging dan tidak menyokong perpustakaan/rangka kerja CSS dan JavaScript. Ini bermakna Nashorn boleh dilaksanakan dalam penyemak imbas tanpa menjadi mimpi ngeri.

Penerangan ringkas JavaScript

Untuk menggunakan JavaScript dalam shell menggunakan alat JJS Nashorn, anda harus terlebih dahulu memasang JDK8, yang boleh anda muat turun secara percuma. Untuk menguji pemasangannya, laksanakan:

>_ javac -version
# 它應(yīng)該回顯
# java version "1.8.x"
jjs -version
# 它應(yīng)該回顯
# nashorn 1.8.x
jjs>

Jika ada masalah dengan arahan pertama atau kedua, cuba tambah JDK ke jalan

Sekarang anda boleh menggunakan JavaScript sebagai skrip shell. Semak contoh mudah ini:

jjs> var a = 1
jjs> var b = 4
jjs> print (a+b)
5
jjs>

您可能已經(jīng)發(fā)現(xiàn),您不必將代碼寫入jjs shell。您可以將代碼寫入JavaScript源文件,然后從shell調(diào)用它??紤]以下JavaScript代碼:

var isPrime = function(num) {
    if (isNaN(num) || !isFinite(num) || num < 2) return false;

    var m = Math.sqrt(num);

    for (var i = 2; i <= m; i++) {
        if (num % i === 0) 
            return false;
    }

    return true;
}

var numbers = [ 2, 3, 4, 5, 6, 7, 8, 9, 10 ];

for (var i = 0; i < numbers.length; i++) {
    if (isPrime(numbers[i]))
        print(numbers[i] + " is prime");
    else
        print(numbers[i] + " is not prime");
}

假設(shè)代碼位于名為prime.js的文件中,我們可以通過執(zhí)行以下命令在shell中運(yùn)行它:

>_ jjs prime.js
2 is prime
3 is prime
4 is not prime
5 is prime
6 is not prime
7 is prime
8 is not prime
9 is not prime
10 is not prime

這可能會讓您想起Python代碼或bash腳本,但它是JavaScript。 Untuk menjadikannya lebih seperti bash, Nashorn menyediakan pembolehubah argumen untuk mengekstrak parameter baris arahan. Pertimbangkan contoh ini:

if (arguments.length === 0)
    print("No command-line arguments.");
else {
    print("Called with these command-line arguments:");

    for each (cli_arg in arguments) {
        print(cli_arg);
    }
}

menjalankannya akan memberikan output ini (parameter adalah selepas -):

>_ jjs cliargs.js
No command-line arguments.

>_ jjs cliargs.js -- a b "c d e"
Called with these command-line arguments:
a
b
c d e

Di samping itu, JavaScript boleh menggunakan kelas dan kaedah Java.請參閱此多線程JavaScript代碼示例:

var Thread = Java.type("java.lang.Thread"); 
var Runnable = Java.type('java.lang.Runnable');

var Run1 = Java.extend(Runnable, { 
    run: function() { 
        print("One thread");
        print("One thread");
    } 
}); 

new Thread(function() {
    print("Another thread");
    print("Another thread");
    print("Another thread");
}).start()

new Thread(new Run1()).start();

output akan:

<code>Another thread
Another thread
One thread
One thread
Another thread</code>

anda dapat melihat dari output bahawa kod itu berbilang threaded. Dengan menggunakan java.type ("java.lang.thread");, kita boleh menghubungi kelas Java dalam kod JavaScript. Nashorn juga membenarkan operasi terbalik, memanggil kod JavaScript dalam kod Java.

package j2js.example;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class Main {

    public static void main(String[] args) {

        ScriptEngine nashorn = new ScriptEngineManager().getEngineByName("nashorn");

        try {
            nashorn.eval("print('Am I Java or JavaScript?')");
        } catch (ScriptException e) {
            e.printStackTrace();
        }
    }

}

Contoh ini mencetak saya Java atau JavaScript hanya pada baris 14? Soalan, tetapi ini adalah contoh yang paling mudah untuk meletakkan kod JavaScript ke dalam Java. Anda boleh menggunakan kaedah Java untuk membaca keseluruhan kod sumber dalam fail JavaScript dan kemudian lulus kod tersebut ke kaedah EVAL () sebagai parameter rentetan. Ini akan membolehkan kod JavaScript dilaksanakan di dalam Java.

Kesimpulan

JavaScript ada di mana -mana sekarang! Anda boleh menggunakannya untuk aplikasi klien, aplikasi pelayan, dan lebih baik, kadang -kadang kedua -dua pelanggan dan pelayan. Anda boleh menggunakannya untuk aplikasi mudah alih atau menyediakan IOT kecil. Sekarang, dengan Nashorn, anda boleh menggunakannya sebagai bahasa skrip gaya shell yang kuat, memanfaatkan kesederhanaan JavaScript dan API kaya Java.

soalan yang sering ditanya mengenai enjin nashorn javascript

Apakah enjin JavaScript Nashorn?

Nashorn JavaScript Engine adalah enjin JavaScript berprestasi tinggi yang dibangunkan oleh Oracle untuk Mesin Maya Java (JVMS). Ia direka untuk melaksanakan kod JavaScript secara tempatan di JVM, yang membolehkan Java dan JavaScript berinteraksi dengan lancar. Nashorn memberikan peningkatan prestasi yang signifikan ke atas pendahulunya, Rhino, dan termasuk sokongan untuk keupayaan JavaScript yang lebih baru.

Nashorn與其他JavaScript引擎相比如何?

Nashorn的獨特之處在于它專門為JVM設(shè)計。這使其能夠利用JVM的健壯性、成熟性和性能特性。它還在Java和JavaScript之間提供了一個直接的橋梁,使兩種語言能夠無縫交互。 Walau bagaimanapun, perlu diperhatikan bahawa Nashorn tidak digunakan secara meluas sebagai enjin JavaScript lain seperti V8 (untuk Node.js dan Chrome) atau Spidermonkey (untuk Firefox).

Bagaimana menggunakan Nashorn dalam aplikasi Java saya?

Untuk menggunakan Nashorn dalam aplikasi Java, anda perlu membuat contoh baru Nashorn ScriptEngine menggunakan kelas Scriptenginemanager. Anda kemudian boleh melaksanakan kod JavaScript menggunakan kaedah Eval () scriptEngine. Berikut adalah contoh mudah:

>_ javac -version
# 它應(yīng)該回顯
# java version "1.8.x"
jjs -version
# 它應(yīng)該回顯
# nashorn 1.8.x
jjs>

Apakah faedah menggunakan Nashorn?

Nashorn menyediakan beberapa faedah. Pertama, ia membolehkan anda melaksanakan kod JavaScript secara tempatan di JVM, yang dapat meningkatkan prestasi. Kedua, ia menyediakan jambatan lancar antara Java dan JavaScript, yang membolehkan anda menggunakan perpustakaan dan kerangka JavaScript dalam aplikasi Java anda. Akhirnya, Nashorn menyokong ciri -ciri JavaScript yang lebih baru, yang boleh menjadikan kod JavaScript anda lebih cekap dan mudah ditulis.

Adakah Oracle masih mengekalkan Nashorn?

Sehingga JDK 11, Oracle telah menamatkan Nashorn. Ini bermakna bahawa walaupun ia masih termasuk dalam JDK, ia tidak lagi aktif dibangunkan atau dikekalkan. Oracle mengesyorkan pemaju mula mencari alternatif.

Apakah beberapa alternatif kepada Nashorn?

Nashorn mempunyai beberapa alternatif, termasuk GraalVM, yang merupakan runtime berprestasi tinggi yang menyokong pelbagai bahasa termasuk JavaScript. Alternatif lain termasuk Rhino, satu lagi enjin JavaScript untuk JVM, dan Node.js, runtime JavaScript yang popular berdasarkan enjin V8 JavaScript Chrome.

Bolehkah saya menggunakan ciri -ciri ES6 di Nashorn?

Nashorn menyokong beberapa ciri ES6, tetapi tidak semuanya. Ini termasuk pengisytiharan LET dan const, fungsi anak panah dan rentetan templat, dll. Walau bagaimanapun, fungsi seperti modul, kelas dan janji tidak disokong.

Bagaimana untuk debug kod JavaScript yang dilaksanakan oleh Nashorn?

Nashorn mengandungi alat baris arahan yang dipanggil JJS yang boleh digunakan untuk melaksanakan dan debug kod JavaScript. Anda juga boleh menggunakan Java Debugger (JDB) untuk debug kod JavaScript yang dilaksanakan oleh Nashorn.

Bolehkah saya menggunakan modul Node.js di Nashorn?

Walaupun Nashorn sendiri tidak menyokong modul Node.js, terdapat beberapa perpustakaan yang dapat menyediakan fungsi ini. Perpustakaan sedemikian adalah avatar.js, yang menyediakan sistem API dan modul serasi node.js di atas Nashorn.

Bagaimana untuk memanggil kaedah Java dari kod JavaScript yang dilaksanakan oleh Nashorn?

Nashorn menyediakan jambatan lancar antara Java dan JavaScript, yang membolehkan anda memanggil kaedah Java secara langsung dari kod JavaScript. Berikut adalah contoh mudah:

jjs> var a = 1
jjs> var b = 4
jjs> print (a+b)
5
jjs>

Respons yang disemak ini mengekalkan imej asal dan formatnya, sambil memupuk teks untuk membuat versi unik artikel.

Atas ialah kandungan terperinci Memperkenalkan Enjin JavaScript Nashorn. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1488
72
Bagaimana membuat permintaan HTTP di node.js? Bagaimana membuat permintaan HTTP di node.js? Jul 13, 2025 am 02:18 AM

Terdapat tiga cara biasa untuk memulakan permintaan HTTP dalam node.js: Gunakan modul terbina dalam, axios, dan nod-fetch. 1. Gunakan modul HTTP/HTTPS terbina dalam tanpa kebergantungan, yang sesuai untuk senario asas, tetapi memerlukan pemprosesan manual jahitan data dan pemantauan ralat, seperti menggunakan https.get () untuk mendapatkan data atau menghantar permintaan pos melalui .write (); 2.AXIOS adalah perpustakaan pihak ketiga berdasarkan janji. Ia mempunyai sintaks ringkas dan fungsi yang kuat, menyokong async/menunggu, penukaran JSON automatik, pemintas, dan lain -lain. Adalah disyorkan untuk memudahkan operasi permintaan tak segerak; 3.Node-Fetch menyediakan gaya yang serupa dengan pengambilan penyemak imbas, berdasarkan janji dan sintaks mudah

Jenis Data JavaScript: Rujukan primitif vs Jenis Data JavaScript: Rujukan primitif vs Jul 13, 2025 am 02:43 AM

Jenis data JavaScript dibahagikan kepada jenis primitif dan jenis rujukan. Jenis primitif termasuk rentetan, nombor, boolean, null, undefined, dan simbol. Nilai -nilai tidak berubah dan salinan disalin apabila memberikan nilai, jadi mereka tidak mempengaruhi satu sama lain; Jenis rujukan seperti objek, tatasusunan dan fungsi menyimpan alamat memori, dan pembolehubah menunjuk objek yang sama akan mempengaruhi satu sama lain. Typeof dan Instanceof boleh digunakan untuk menentukan jenis, tetapi memberi perhatian kepada isu -isu sejarah TypeOfNull. Memahami kedua -dua jenis perbezaan ini dapat membantu menulis kod yang lebih stabil dan boleh dipercayai.

React vs angular vs vue: Rangka kerja JS mana yang terbaik? React vs angular vs vue: Rangka kerja JS mana yang terbaik? Jul 05, 2025 am 02:24 AM

Rangka kerja JavaScript mana yang terbaik? Jawapannya ialah memilih yang paling sesuai mengikut keperluan anda. 1. REACT adalah fleksibel dan bebas, sesuai untuk projek sederhana dan besar yang memerlukan penyesuaian tinggi dan keupayaan seni bina pasukan; 2. Angular menyediakan penyelesaian lengkap, sesuai untuk aplikasi peringkat perusahaan dan penyelenggaraan jangka panjang; 3. Vue mudah digunakan, sesuai untuk projek kecil dan sederhana atau perkembangan pesat. Di samping itu, sama ada terdapat timbunan teknologi sedia ada, saiz pasukan, kitaran hayat projek dan sama ada SSR diperlukan juga faktor penting dalam memilih rangka kerja. Singkatnya, tidak ada kerangka terbaik, pilihan terbaik adalah yang sesuai dengan keperluan anda.

Objek Masa JavaScript, seseorang membina eactexe, laman web lebih cepat di Google Chrome, dll. Objek Masa JavaScript, seseorang membina eactexe, laman web lebih cepat di Google Chrome, dll. Jul 08, 2025 pm 02:27 PM

Helo, pemaju JavaScript! Selamat datang ke berita JavaScript minggu ini! Minggu ini kami akan memberi tumpuan kepada: Pertikaian tanda dagangan Oracle dengan Deno, objek masa JavaScript baru disokong oleh pelayar, kemas kini Google Chrome, dan beberapa alat pemaju yang kuat. Mari mulakan! Pertikaian tanda dagangan Oracle dengan percubaan Deno Oracle untuk mendaftarkan tanda dagangan "JavaScript" telah menyebabkan kontroversi. Ryan Dahl, pencipta Node.js dan Deno, telah memfailkan petisyen untuk membatalkan tanda dagangan, dan dia percaya bahawa JavaScript adalah standard terbuka dan tidak boleh digunakan oleh Oracle

Apakah API cache dan bagaimana ia digunakan dengan pekerja perkhidmatan? Apakah API cache dan bagaimana ia digunakan dengan pekerja perkhidmatan? Jul 08, 2025 am 02:43 AM

CACHEAPI adalah alat yang disediakan oleh penyemak imbas kepada permintaan rangkaian cache, yang sering digunakan bersempena dengan ServiceWorker untuk meningkatkan prestasi laman web dan pengalaman luar talian. 1. Ia membolehkan pemaju menyimpan sumber secara manual seperti skrip, helaian gaya, gambar, dan lain -lain; 2. Ia boleh memadankan tindak balas cache mengikut permintaan; 3. Ia menyokong memotong cache tertentu atau membersihkan seluruh cache; 4. Ia boleh melaksanakan keutamaan cache atau strategi keutamaan rangkaian melalui perkhidmatan pekerja yang mendengar acara mengambil; 5. Ia sering digunakan untuk sokongan luar talian, mempercepat kelajuan akses berulang, sumber utama dan kandungan kemas kini latar belakang; 6. Apabila menggunakannya, anda perlu memberi perhatian kepada kawalan versi cache, sekatan penyimpanan dan perbezaan dari mekanisme caching HTTP.

Mengendalikan Janji: Chaining, Pengendalian Kesalahan, dan Janji Gabungan di JavaScript Mengendalikan Janji: Chaining, Pengendalian Kesalahan, dan Janji Gabungan di JavaScript Jul 08, 2025 am 02:40 AM

Janji adalah mekanisme teras untuk mengendalikan operasi tak segerak dalam JavaScript. Memahami panggilan rantaian, pengendalian ralat dan gabungan adalah kunci untuk menguasai aplikasi mereka. 1. Panggilan rantai mengembalikan janji baru melalui .then () untuk merealisasikan persamaan proses tak segerak. Setiap .then () menerima hasil sebelumnya dan boleh mengembalikan nilai atau janji; 2. Pengendalian ralat harus menggunakan .catch () untuk menangkap pengecualian untuk mengelakkan kegagalan senyap, dan boleh mengembalikan nilai lalai dalam tangkapan untuk meneruskan proses; 3. Gabungan seperti janji.all () (berjaya hanya berjaya selepas semua kejayaan), janji.race () (penyempurnaan pertama dikembalikan) dan janji.allsettled () (menunggu semua penyelesaian)

Memanfaatkan array.prototype Kaedah untuk manipulasi data dalam javascript Memanfaatkan array.prototype Kaedah untuk manipulasi data dalam javascript Jul 06, 2025 am 02:36 AM

Kaedah terbina dalam JavaScript seperti .map (), .filter () dan .reduce () dapat memudahkan pemprosesan data; 1) .map () digunakan untuk menukar elemen satu hingga satu untuk menghasilkan tatasusunan baru; 2) .filter () digunakan untuk menapis elemen mengikut keadaan; 3) .reduce () digunakan untuk mengagregatkan data sebagai nilai tunggal; Penyalahgunaan harus dielakkan apabila digunakan, mengakibatkan kesan sampingan atau masalah prestasi.

JS Roundup: menyelam jauh ke dalam gelung acara JavaScript JS Roundup: menyelam jauh ke dalam gelung acara JavaScript Jul 08, 2025 am 02:24 AM

Gelung acara JavaScript menguruskan operasi tak segerak dengan menyelaraskan susunan panggilan, webapis, dan barisan tugas. 1. Stack panggilan melaksanakan kod segerak, dan ketika menghadapi tugas -tugas yang tidak segerak, ia diserahkan kepada Webapi untuk diproses; 2. Selepas Webapi melengkapkan tugas di latar belakang, ia meletakkan panggil balik ke dalam barisan yang sama (tugas makro atau tugas mikro); 3. Loop acara memeriksa sama ada timbunan panggilan kosong. Jika ia kosong, panggilan balik diambil dari barisan dan ditolak ke dalam tumpukan panggilan untuk pelaksanaan; 4. Tugas -tugas mikro (seperti janji. 5. Memahami gelung acara membantu mengelakkan menyekat benang utama dan mengoptimumkan pesanan pelaksanaan kod.

See all articles