«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Руководство по переходу: от Java до JavaScript

Руководство по переходу: от Java до JavaScript

Опубликовано в 2025-02-06
Просматривать:219

в прошлом году я пересмотрел программирование, сосредоточившись на Java после перерыва. Моя цель была более сложным языком, чем Python. Я посвятил 3-4 месяца освоению основных концепций Java: ее эксплуатационная механика, объектно-ориентированное программирование (ООП), управление памятью и подключение к базе данных через JDBC.

недавно я перешел в веб -разработку, начиная с JavaScript. После нескольких дней изучения JavaScript я хочу поделиться своими наблюдениями и пониманием ключевых различий между Java и JavaScript, и как возможен плавный переход.

]
]

Core Diffrencies

Самая поразительная разница заключается в объявлении типа данных. JavaScript динамически напечатан, в отличие от статической печати Java. В то время как оба подхода имеют достоинства и недостатки, мы сосредоточимся на ключевом различие: однопоточный характер JavaScript контрастирует с многопоточными возможностями Java.

]

java vs. javascript: простая аналогия ]

Представьте себе Java как тщательного, ориентированного на детали солдата. Инструкции должны быть точными, указав как задачу, так и ее обоснование. JavaScript, наоборот, напоминает расслабленного друга; Он выполняет задачи эффективно без чрезмерных деталей - просто предоставляет задачу и обрабатывает выполнение.

]

Transition Guide: From Java to JavaScript

обработка типа данных

Java мандат явного объявления типа данных (например,

string , int , float , boolean ) при определении переменных. JavaScript, однако, гибкий; Переменные объявляются с использованием let или const (для констант), с определением типа, возникающим во время выполнения. While var обслуживал аналогичную цель, let и const теперь предпочтительнее. ]

java Пример:

класс Main { public static void main (string [] args) { int a = 5; int b = 6; int result = a b; System.out.println (результат); } }
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; Пусть b = 6; Пусть сумма = A B; console.log ("sum is:" sum);
let a = 5;
let b = 6;

let sum = a   b;

console.log("The sum is: "   sum);
oop дивергенции в java и javascript

Понимание ООП в JavaScript имеет решающее значение, учитывая его широкое использование. Помимо динамического типирования JavaScript, оно является прототипом, наследующим свойствами через прототипы. Post-es6, JavaScript полностью поддерживает ООП с классами, но в основном полагается на прототипы.

]

Следующие фрагменты кода иллюстрируют синтаксические различия в создании класса и метода:

java:

класс Person { String name; Человек (имя строки) { this.name = name; } void Greet () { System.out.println ("Привет", имя); } public static void main (string [] args) { Человек = новый человек («Джон»); Person.greet (); } }
class Main {
    public static void main(String[] args) {
        int a = 5;
        int b = 6;
        int result = a   b;
        System.out.println(result);
    }
}
javascript:

класс Person { конструктор (имя) { this.name = name; } приветствовать() { console.log (`hello, $ {this.name}`); } } const Person = новый человек ("Джон"); Person.greet ();

class Person {
    constructor(name) {
        this.name = name;
    }

    greet() {
        console.log(`Hello, ${this.name}`);
    }
}

const person = new Person("John");
person.greet();
В Java создание объекта требует определения класса. JavaScript предлагает гибкость; Объекты могут быть созданы непосредственно без явных объявлений класса.

]

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 Animal { void sound () { System.out.println («Some Sound»); } } классная собака расширяет животное { void sound () { System.out.println ("кора"); } } открытый класс Main { public static void main (string [] args) { Собака собака = новая собака (); Dog.sound (); } }

class Animal {
    void sound() {
        System.out.println("Some sound");
    }
}

class Dog extends Animal {
    void sound() {
        System.out.println("Bark");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = new Dog();
        dog.sound();
    }
}

Class Animal { звук() { console.log («немного звучания»); } } классная собака расширяет животное { звук() { console.log ("кора"); } } const Dog = new Dog (); dog.sound ();

]
class Animal {
    sound() {
        console.log("Some sound");
    }
}

class Dog extends Animal {
    sound() {
        console.log("Bark");
    }
}

const dog = new Dog();
dog.sound();
инкапсуляция JavaScript слабее Java; ему не хватает модификаторов доступа (

private , Protected

,

public ). Однако нотация # (частное поле), представленное в ES2022, предоставляет степень управления частным полем: ] класс Person { #имя; конструктор (имя) { это.#name = name; } приветствовать() { console.log (`hello, $ {this.#name}`); } } const Person = новый человек ("Джон"); Person.greet (); console.log (человек.#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
JavaScript не поддерживает перегрузку метода из-за его интерпретированного характера и отсутствия проверки времени компиляции. Однако переоценка метода поддерживается:

] Class Animal { звук() { console.log («немного звучания»); } } классная собака расширяет животное { звук() { console.log ("кора"); } } const Dog = new Dog (); Dog.sound (); // Лаять

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3