JavaScript

Java Collections
Рівень 3 , Лекція 1
Відкрита

— Привіт, Аміго!

— Привіт, Білаабо!

— Радий тебе бачити. Сьогодні у нас невелике, але дуже пізнавальне заняття. Сьогодні я розповім тобі про мову JavaScript.

JavaScript - 1

— Нова мова? Як цікаво…

— JavaScript зараз популярний завдяки інтернету. Справа в тому, що це єдина мова, яку вміють виконувати всі браузери. Якщо ти хочеш додати анімацію або деяку логіку до своєї інтернет-сторінки, то ти можеш зробити це за допомогою JavaScript.

— А чи правда, що JavaScript – найпопулярніша мова?

— Так, але тут правильніше було б сказати, що він найпопулярніший «друга мова». Програмісти C++, Java, C#, PHP змушені писати невеликі скрипти на JavaScript, щоб оживити свої інтернет-сторінки. У той же час людей, які пишуть тільки на JavaScript набагато менше.

— А чому в нього така назва JavaScript? Звучить майже як Java.

— Насправді спочатку він називався LiveScript, але коли Java почала набирати популярності, його перейменували на JavaScript.

Java та JavaScript — це дві абсолютно різні мови, не варто їх плутати.

JavaScript, на відміну від Java, не має класів, не підтримує статичну типізацію, багатопоточність та багато чого ще. І якщо Java – це скоріше великий набір будівельних інструментів, то JavaScript – це швейцарський ніж. JavaScript створений для вирішення маленьких завдань, а Java – для великих і дуже великих.

Ось тобі кілька фактів про JavaScript:

Факт перший – у JavaScript є функції, але немає класів

Просто пишеш логіку програми в кількох функціях і все. Приклад:

JavaScript
function min(a, b)
{
 return a
}
Java
public static int min(int a, int b)
{
return a
}

Нові функції оголошуються за допомогою конструкції «function+ім'я».

Ще приклад:

JavaScript
function min(ab)
{
 return a<b ? ab;
}

function main()
{
 var s = 3;
 var t = 5;
 var min = min(s, t);
}
Java
public static int min(int a, int b)
{
 return a<b ? ab;
}

public static void main()
{
 int s = 3;
 int t = 5;
 int min = min(s,t);
}

Факт другий – у JavaScript є змінні, але у них немає типів

JavaScript – це мова з динамічною типізацією. Це означає, що з змінних, за фактом, немає типів. Будь-якій змінній можна надати значення будь-якого типу (у значень типи є). Приклад:

JavaScript
function main()
{
 var s = "Bender";
 var k = 1;
 var n = s.length;
}
Java
public static void main()
{
 String s ="Bender";
 int k = 1;
 int n = s.length();
}

Але динамічна типізація збільшує ризик помилок під час роботи програми:

JavaScript
function main()
{
 var s = "Bender";
 var k = 1;
 var n = k.length;
}
Java
public static void main()
{
 String s ="Bender";
 int k = 1;
 int n = k.length();
}

У прикладі вище, ми підставили замість s (рядки), змінну k (число). У випадку з Java помилка буде виявлена на етапі компіляції, у випадку з JavaScript – пізніше: вже під час виконання цього коду. Якщо хочеш оголосити змінну в JavaScript, треба написати «var+ім'я ». Типів змінних немає, так само немає типів методів/функцій та їх аргументів.

У JavaScript дуже мало строгих правил і дуже багато анархії.

span>

Можна оголосити функцію з 5 аргументами, а викликати з двома – решта дорівнюватиме null. Можна оголосити функцію з двома аргументами, а під час виклику передати п'ять. Три просто відкинуться. Контроль за помилками, друкарськими помилками, змінами – мінімальний.

Факт третій – у JavaScript є if, for, while

У JavaScript є if, for, while і це – хороша новина. Дивимося приклади:

JavaScript
function main()
{
 var s = "Bender";

 var result = "";

 for(var i=0;i<s.length;i++)
 {
  result += s[i]+ "";
 }
 if(result.length>10)
 {
  alert (result);
 }
 else
 {
  while(result.length <= 10)
  {
   result += " ";
  }
  alert(result);
 }
}
Java
public static void main()
{
 String s = "Bender";
 char[] s2 = s.toCharArray();
 String result = "";

 for(int i=0;i<s.length();i++)
 {
  result += s2[i]+ "";
 }
 if(result.length()>10)
 {
  System.out.println(result);
 }
 else
 {
  while (result.length() <= 10)
  {
   result += " ";
  }
  System.out.println(result);
 }
}

— Досить схоже. Думаю, я міг би розібратися, як працює код, написаний на JavaScript.

— Оптимізм – це добре.

Факт четвертий – у JavaScript є try-catch-finally

У JavaScript є винятки (Error ) і це добре. checked винятків немає, тільки unchecked – аналог RuntimeException. try-catch-finally працює так само, як і Java. Приклад:

JavaScript
function main()
{
 try
 {
  var s = null;
  var n = s.length;
 }
 catch(e)
 {
  alert(e);
 }
}
Java
public static void main()
{
 try
 {
  String s = null;
  int n = s.length();
 }
 catch(Exception e)
 {
  System.out.println(e);
 }
}

При спробі дізнатися довжину рядка буде викинуто виняток, т.к. змінна посилається на null.

Факт п'ятий – у JavaScript є масиви

Хороша новина. JavaScript має масиви. Погана - там немає ні списків, ні колекцій. Ще одна хороша новина - масиви можуть динамічно розтягуватися, при додаванні нових елементів і зменшуватися при їх видаленні. Більше схоже на гібрид масиву та списку.

Приклад:

JavaScript
function main()
{
 var m = [1,3,18, 45, 'c', "roma", null];
 alert(m.length); //7

 m.push("end");
 alert(m.length); //8

 for (var i=0;i<m.length;i++)
 {
  alert(m[i]);
 }
}
Java
public static void main()
{
 List m = Arrays.asList(1,3,18, 45,'c', "roma", null);
 System.out.println(m.size());//7

 m.add("end");
 System.out.println(m.size());//8

 for (int i=0;i<m.size();i++)
 {
  System.out.println(m.get(i));
 }
}

— А що це за квадратні дужки під час оголошення масиву?

— Це і є оголошення масиву. Щоб оголосити масив, треба написати квадратні дужки, а між ними перерахувати елементи масиву. Порожній масив оголошується просто парою дужок.

Приклад
var m = [];

Факт шостий – у JavaScript є об'єкти

У JavaScript є об'єкти. Насправді все JavaScript є об'єктом, примітивні типи теж. Кожен об'єкт представлений у вигляді набору пар «ключ-значення». Грубо кажучи, кожен об'єкт JavaScript – це аналог HashMap Java. Приклад оголошення об'єкта:

JavaScript
function main()
{
 var m = {
  first_name : "Bill",
  last_name: "Gates",
  age: 54,
  weight: 67,
 children: ["Emma", "Catrin"],
 wife: {
  first_name : "Melinda",
  last_name: "Gates",
  age: 45,
  }
};

 alert(m.first_name); // Bill
 alert(m.age); // 54
 alert(m.wife.first_name);// Melinda

 m.age = 45;
 m.age++;
 m["first_name"] = "Stive";
 m["wife"] = null;
Java
public static void main()
{
 HashMap m = new HashMap();
 m.put("first_name", "Bill");
 m.put("last_name", "Gates");
 m.put("age", 54);
 m.put("weight", 67);

 String[] children = {"Emma","Catrin"};
 m.put("children", children);

 HashMap wife = new HashMap();
 wife.put("first_name", "Melinda");
 wife.put("last_name", "Gates");
 wife.put("age", 45);
 m.put("wife", wife);

 System.out.println(m.get("first_name"));
 System.out.println(m.get("age"));

 HashMap w = ((HashMap)m.get("wife"));
 System.out.println(w.get("first_name")));

 m.put("age", 45);
 m.put("age", ((Integer)m.get("age"))+1);
 m.put("first_name","Stive");
 m.put("wife", null);

Щоб створити новий об'єкт, достатньо написати дві фігурні дужки «{}».

Всередині дужок можна вказати дані об'єкта у форматі «ключ, двокрапка, значення, кома».

До полів об'єкта можна звертатися двома способами: Еквівалентні записи

Коментарі (5)
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ
Ruslan Рівень 34
2 листопада 2025
І що? Рік пройшов, а ніхто так нічого в статті і не відформатував... Класний курс. Чи треба адміністрації конкретний лист з проханням виправити написати?
Вячеслав Рівень 44
9 серпня 2025
це приклад, як робити не потрібно???
11 квітня 2025
Дійсно на цій сторінці є проблеми із форматуванням. Прошу авторів переглянути сторінку. Ні в комп'ютері, ні у смартфоні вона нормально не відображається
23 липня 2024
пробачте, якщо я трози перкбільшую, але текст жахливо відформатований. Половину коду взагалі не видно!
Olexandr Рівень 47
13 листопада 2024
Лекція про JS😃 Певно це нас так підводять до того, що нам треба звикати і крім Java вчити ще і фронтенд щоб фіксити його баги на ходу)))