Если вы программист, то знаете, что Java и Javascript — это то же самое, что автомобиль и ковер :) Сегодня мы поговорим об этом подробнее.

Java и JavaScript — два популярных языка программирования, которые имеют явные различия с точки зрения синтаксиса, выполнения и вариантов использования. В этом сообщении блога мы рассмотрим некоторые ключевые различия между Java и JavaScript с примерами кода.

Цель

Java — это язык программирования общего назначения, который можно использовать для разработки автономных приложений, веб-приложений, мобильных приложений и игр. Давайте посмотрим на пример кода Java:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

Этот Java-код выводит «Hello, World!» к консоли.

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

const button = document.getElementById('my-button');
button.addEventListener('click', () => {
  button.style.backgroundColor = 'red';
});

Этот код JavaScript выбирает кнопку с идентификатором «my-button» и добавляет прослушиватель событий щелчка, который меняет цвет фона кнопки на красный.

Исполнение

Код Java компилируется в байт-код, который может выполняться на любой платформе с помощью виртуальной машины Java (JVM). Вот пример того, как код Java компилируется и выполняется:

# Compile Java code
javac HelloWorld.java

# Execute Java code
java HelloWorld

Код JavaScript интерпретируется веб-браузерами на стороне клиента. Вот пример того, как код JavaScript выполняется в веб-браузере:

<!DOCTYPE html>
<html>
  <head>
    <title>My Webpage</title>
    <script src="myscript.js"></script>
  </head>
  <body>
    <button id="my-button">Click me</button>
  </body>
</html>

Этот HTML-код включает тег сценария, который загружает файл JavaScript с именем «myscript.js». Затем код JavaScript в «myscript.js» выполняется, когда веб-страница загружается в браузере. Да, у нас могут быть NodeJ, которые мы можем скомпилировать аналогичным образом, но сейчас мы поговорим о JavaScript.

Синтаксис

Java и JavaScript имеют разный синтаксис. Синтаксис Java похож на синтаксис C++ и C#, а синтаксис JavaScript похож на синтаксис HTML и CSS. Вот несколько примеров синтаксических различий между Java и JavaScript:

Джава:

int num = 42;
if (num > 0) {
    System.out.println("Positive");
} else if (num < 0) {
    System.out.println("Negative");
} else {
    System.out.println("Zero");
}

JavaScript:

let num = 42;
if (num > 0) {
  console.log("Positive");
} else if (num < 0) {
  console.log("Negative");
} else {
  console.log("Zero");
}

Система типов

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

Джава:

int num = 42;
String str = "Hello, World!";

Javascript:

let num = 42;
let str = "Hello, World!";

В JavaScript тип переменной «num» может изменяться во время выполнения:

let num = 42;
num = "forty-two";

Объектно-ориентированное программирование (ООП)

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

Джава:

public class Animal {
    private String name;
    
    public Animal(String name) {
        this.name = name;
    }
    
    public void speak() {
        System.out.println("Hello, my name is " + name);
    }
}

public class Cat extends Animal {
    public Cat(String name) {
        super(name);
    }
    
    @Override
    public void speak() {
        System.out.println("Meow, my name is " + super.getName());
    }
}

public class Main {
    public static void main(String[] args) {
        Animal animal = new Animal("Fluffy");
        animal.speak();
        
        Cat cat = new Cat("Whiskers");
        cat.speak();
    }
}

Этот код Java определяет класс Animal со свойством name и методом speak(), а также класс Cat, который наследуется от класса Animal и переопределяет метод speak(). Класс Main создает экземпляры классов Animal и Cat и вызывает соответствующие им методы speak().

JavaScript:

function Animal(name) {
    this.name = name;
}

Animal.prototype.speak = function() {
    console.log("Hello, my name is " + this.name);
}

function Cat(name) {
    Animal.call(this, name);
}

Cat.prototype = Object.create(Animal.prototype);
Cat.prototype.constructor = Cat;

Cat.prototype.speak = function() {
    console.log("Meow, my name is " + this.name);
}

const animal = new Animal("Fluffy");
animal.speak();

const cat = new Cat("Whiskers");
cat.speak();

Этот код JavaScript определяет функцию-конструктор Animal со свойством name и методом speak(), а также функцию-конструктор Cat, которая наследуется от функции-конструктора Animal и переопределяет метод speak(). Затем код создает экземпляры конструкторов Animal и Cat и вызывает соответствующие им методы speak().

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

Если вам это нравится, вы можете купить мне кофе здесь :D buymeacoffee.com/popavlad94B