昨年、私はプログラミングを再訪し、休憩後にJavaに焦点を当てました。 私の目標は、Pythonよりも挑戦的な言語でした。 Javaのコアコンセプトの習得に3〜4か月を捧げました。その運用力学、オブジェクト指向プログラミング(OOP)、メモリ管理、およびJDBCを介したデータベース接続。
。最近、私はJavaScriptから始めて、Web開発に移行しました。 JavaScriptを数日間探索した後、JavaとJavaScriptの重要な区別と、スムーズな遷移がどのように可能かについての観察と洞察を共有したいと思っています。
最も印象的な違いは、データ型宣言にあります。 JavaScriptは、Javaの静的タイピングとは異なり、動的にタイプされます。どちらのアプローチにもメリットと欠点がありますが、重要な区別に焦点を当てます。JavaScriptのシングルスレッドの自然は、Javaのマルチスレッド機能とは対照的です。
string 、
int 、
float 、
boolean )を定義するときに義務付けます。 ただし、JavaScriptは柔軟です。変数は、
let または
const (定数)を使用して宣言され、型決定は実行時に発生します。
var も同様の目的を果たしましたが、
let および
const が希望されます。
javaの例:
class Main {
public static void main(String[] args) {
int a = 5;
int b = 6;
int result = a b;
System.out.println(result);
}
}
javascriptの例:
let a = 5;
let b = 6;
let sum = a b;
console.log("The sum is: " sum);
次のコードスニペットは、クラスとメソッドの作成における構文の違いを示しています:
java:
クラスの人{ 文字列名; 人(文字列名){ this.name = name; } void greet(){ system.out.println( "hello、" name); } public static void main(string [] args){ 人の人=新しい人( "ジョン"); person.greet(); } }
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();
}
}
javascript:クラスの人{ コンストラクター(名前){ this.name = name; } 挨拶する() { console.log( `hello、$ {this.name}`); } } const person = new Person( "John"); person.greet();
class Person {
constructor(name) {
this.name = name;
}
greet() {
console.log(`Hello, ${this.name}`);
}
}
const person = new Person("John");
person.greet();
Javaは、すべてのオブジェクトがクラスのインスタンスであることを要求します。 JavaScriptは直接オブジェクトの作成を許可します:
javascript
const person = { 名前:「ジョン」、 挨拶:function(){ console.log( `hello、$ {this.name}`); } }; person.greet();
const person = {
name: "John",
greet: function() {
console.log(`Hello, ${this.name}`);
}
};
person.greet();
相続メカニズムjava:
class動物{ void sound(){ System.out.println( "Some Sound"); } } クラスドッグは動物を伸ばします{ void sound(){ System.out.println( "Bark"); } } パブリッククラスメイン{ public static void main(string [] args){ 犬の犬= new Dog(); dog.sound(); } }
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();
}
}
javascript:class動物{ 音() { console.log( "Some Sound"); } } クラスドッグは動物を伸ばします{ 音() { console.log( "Bark"); } } const dog = new Dog(); dog.sound();
const person = {
name: "John",
greet: function() {
console.log(`Hello, ${this.name}`);
}
};
person.greet();
カプセル化の考慮事項、 protected
、 public
)がありません。 ただし、ES2022で導入された#
(プライベートフィールド)の表記法は、ある程度のプライベートフィールドコントロールを提供します。
クラスの人{
#名前;
コンストラクター(名前){
this。#name = name;
}
挨拶する() {
console.log( `hello、$ {this。#name}`);
}
}
const person = new Person( "John");
person.greet();
console.log(person。#name); //エラー:プライベートフィールド '#NAME'は、囲いのクラス
class Person {
#name;
constructor(name) {
this.#name = name;
}
greet() {
console.log(`Hello, ${this.#name}`);
}
}
const person = new Person("John");
person.greet();
console.log(person.#name); // Error: Private field '#name' must be declared in an enclosing class
class動物{ 音() { console.log( "Some Sound"); } } クラスドッグは動物を伸ばします{ 音() { console.log( "Bark"); } } const dog = new Dog(); dog.sound(); // 吠える
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3