1. Змінні та біль

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

Для оголошення змінної використовується ключове слово var:

var name;
var name = value;

Приклади роботи зі змінними в JavaScript:


var a = 10, b = 20;
var c = a*a + b*b;

var s = "Діагональ дорівнює:";
console.log( s + Math.sqrt(c));

Відмінний і зрозумілий код, чи не так? Можливо, це останній раз у твоєму житті, коли ти бачиш гарний та зрозумілий JavaScript код. Запам'ятай цей момент :)

2. Типізація у JavaScript

Як ми вже говорили, у змінних у мові JavaScript немає типу. Але у значень змінних типи є. Ось 5 найпоширеніших типів JavaScript:

# Тип приклад Опис
1 Номер
var pi = 3.14;
Містить будь-яке число
2 String
var s = "Вітання!";
Містить рядок
3 Boolean
var result = true;
Містить true або false
4 Array
var arr = [1, 2, 3, 4, 5];
Містить масив елементів
5 Date
var current = new Date();
Містить дату
6 Object
var o = {
   width: 100,
   height: 200
}
Містить об'єкт, який складається з пар key, value. Чимось схожий на HashMap в Java
7 Function
function sqr(var x) {
   return x*x;
}
Функція

Для визначення типу об'єкта використовується ключове слово typeof, приклад:


var s = "134";
var x = (typeof s == "String") ? s*1 : s;

3. Функції та return

Ну і звісно ж, JavaScript має функції. Класів там немає, тому оголошувати функції можна в будь-якому місці коду. Навіть у інших функціях. Загальний формат має вигляд:


   function name(a, b, c) {
     // код функції
      return result;
   }

Типу функції немає. А навіщо, якщо в мові немає контролю сумісності типів? Параметри функції також можуть бути відсутніми. Як і команда return, яка повертає значення.

Під час виклику функції можна передавати будь-яку кількість параметрів будь-якого типу. Зайві відкинуться, відсутні будуть дорівнювати null.

Приклади функцій:


    function getValue(name)
    {
        return this[name];
    }

    function setValue(name, value)
    {
        this[name] = value;
    }

4. Масиви у JavaScript

Масиви у JavaScript дуже схожі на масиви в Java. Приклади:


   var array = [1, 2, 3, 4, 5];
   array[3] = array[2];
   console.log (array[0]);

Вони можуть мати значення будь-якого типу, навіть інші масиви:


   var array = [1, "Привіт", 3.14, [4, 5] ];
   array[3] = array[2];
   console.log (array[0]);

До того ж, масиви поводяться як колекції – у них можна динамічно додавати елементи:


   var array = [];
   array.push(100);
   array.push(101);
   array.push(102);

   array[1] = array[2];
   console.log (array[0]);

5. Об'єкти в JavaScript

Об'єкти в JavaScript дуже схожі на HashMap у Java: вони містять пари ключ-значення. Приклад:


   var obj = {
    name: "Bill Gates",
    age: 67,
    company: "Microsoft"
   };

   console.log (obj.age);

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

var x = obj.age;
var x = obj["age"];

Як і у випадку з HashMap, поля можна створювати та видаляти. Приклад:


   var obj = {};
   obj.name = "Bill Gates";
   obj.age = 67;
   obj.company = "Microsoft";

   delete obj.age;  //видалення поля