Rumah >Java >javaTutorial >Panduan Peralihan: Dari Java ke JavaScript
Tahun lepas, saya melawat semula pengaturcaraan, memfokuskan pada Java selepas rehat. Matlamat saya ialah bahasa yang lebih mencabar daripada Python. Saya mendedikasikan 3-4 bulan untuk menguasai konsep teras Java: mekanik operasinya, pengaturcaraan berorientasikan objek (OOP), pengurusan memori dan sambungan pangkalan data melalui JDBC.
Baru-baru ini, saya beralih kepada pembangunan web, bermula dengan JavaScript. Selepas beberapa hari meneroka JavaScript, saya tidak sabar-sabar untuk berkongsi pemerhatian dan pandangan saya tentang perbezaan utama antara Java dan JavaScript, dan cara peralihan yang lancar boleh dilakukan.
Perbezaan yang paling ketara terletak pada pengisytiharan jenis data. JavaScript ditaip secara dinamik, tidak seperti penaipan statik Java. Walaupun kedua-dua pendekatan mempunyai kebaikan dan kelemahan, kami akan menumpukan pada perbezaan utama: sifat berbenang tunggal JavaScript berbeza dengan keupayaan berbilang benang Java.
Bayangkan Java sebagai seorang askar yang teliti dan berorientasikan perincian. Arahan mestilah tepat, menyatakan kedua-dua tugas dan rasionalnya. JavaScript, sebaliknya, menyerupai rakan yang santai; ia menyelesaikan tugas dengan cekap tanpa perincian yang berlebihan—cukup sediakan tugasan dan ia mengendalikan pelaksanaan.
Java mewajibkan pengisytiharan jenis data eksplisit (cth., String
, int
, float
, boolean
) apabila mentakrifkan pembolehubah. JavaScript, bagaimanapun, adalah fleksibel; pembolehubah diisytiharkan menggunakan let
atau const
(untuk pemalar), dengan penentuan jenis berlaku pada masa jalan. Walaupun var
mempunyai tujuan yang sama, let
dan const
kini diutamakan.
Contoh Jawa:
<code class="language-java">class Main { public static void main(String[] args) { int a = 5; int b = 6; int result = a + b; System.out.println(result); } }</code>
Contoh JavaScript:
<code class="language-javascript">let a = 5; let b = 6; let sum = a + b; console.log("The sum is: " + sum);</code>
Memahami OOP dalam JavaScript adalah penting, memandangkan penggunaannya yang meluas. Di luar penaipan dinamik JavaScript, ia berasaskan prototaip, mewarisi sifat melalui prototaip. Selepas ES6, JavaScript menyokong sepenuhnya OOP dengan kelas, tetapi pada asasnya bergantung pada prototaip.
Coretan kod berikut menggambarkan perbezaan sintaksis dalam kelas dan penciptaan kaedah:
Jawa:
<code class="language-java">class Person { String name; Person(String name) { this.name = name; } void greet() { System.out.println("Hello, " + name); } public static void main(String[] args) { Person person = new Person("John"); person.greet(); } }</code>
JavaScript:
<code class="language-javascript">class Person { constructor(name) { this.name = name; } greet() { console.log(`Hello, ${this.name}`); } } const person = new Person("John"); person.greet();</code>
Dalam Java, penciptaan objek memerlukan definisi kelas. JavaScript menawarkan fleksibiliti; objek boleh dibuat terus tanpa pengisytiharan kelas yang jelas.
Java menuntut setiap objek menjadi contoh kelas. JavaScript membenarkan penciptaan objek langsung:
JavaScript
<code class="language-java">class Main { public static void main(String[] args) { int a = 5; int b = 6; int result = a + b; System.out.println(result); } }</code>
Sintaks warisan menunjukkan persamaan merentas kedua-dua bahasa.
Jawa:
<code class="language-javascript">let a = 5; let b = 6; let sum = a + b; console.log("The sum is: " + sum);</code>
JavaScript:
<code class="language-java">class Person { String name; Person(String name) { this.name = name; } void greet() { System.out.println("Hello, " + name); } public static void main(String[] args) { Person person = new Person("John"); person.greet(); } }</code>
Encapsulation JavaScript adalah lebih lemah daripada Java; ia tidak mempunyai pengubah suai akses (private
, protected
, public
). Walau bagaimanapun, notasi #
(medan peribadi), yang diperkenalkan dalam ES2022, menyediakan tahap kawalan medan persendirian:
<code class="language-javascript">class Person { constructor(name) { this.name = name; } greet() { console.log(`Hello, ${this.name}`); } } const person = new Person("John"); person.greet();</code>
Java menyokong polimorfisme masa kompilasi (pembebanan kaedah) dan polimorfisme masa jalan (mengatasi kaedah).
JavaScript tidak menyokong pemuatan kaedah kerana sifatnya yang ditafsirkan dan kekurangan semakan masa kompilasi. Kaedah mengatasi, bagaimanapun, disokong:
<code class="language-javascript">const person = { name: "John", greet: function() { console.log(`Hello, ${this.name}`); } }; person.greet();</code>
Atas ialah kandungan terperinci Panduan Peralihan: Dari Java ke JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!