Операції JavaScript
Математичні операції
JavaScript підтримує всі базові математичні операції:
Додавання:
let x = 10;
let y = x + 50;
Віднімання:
let x = 100;
let y = x - 50;
Множення:
let x = 4;
let y = 5;
let z = x * y;
Ділення:
let x = 5;
let y = 2;
let z = x / y;
console.log(z); // 2,5
Ділення за модулем
Ділення за модулем (оператор %) повертає залишок від ділення:
let x = 5;
let y = 2;
let z = x % y;
console.log(z); // 1
Результатом буде 1, оскільки найбільше ціле число, яке менше або дорівнює 5 і при цьому ділиться на 2 дорівнює 4, а 5 - 4 = 1.
Піднесення до степеня. Оператор ** зводить число в певний ступінь:
число ** степінь
Наприклад:
const n = 2 ** 3;
console.log(n); // 8
const x = 3;
const y = 2;
const z = x ** y;
console.log(z); // 9
Інкремент:
let x = 5;
x++; // x = 6
Оператор інкременту ++ збільшує змінну на одиницю. Існує префіксний інкремент, який спочатку збільшує змінну на одиницю, а потім повертає її значення. І є постфіксний інкремент, який спочатку повертає значення змінної, а потім збільшує його на одиницю:
// префіксний інкремент
let x = 5;
let z = ++x;
console.log(x); // 6
console.log(z); // 6
// постфіксний інкремент
let a = 5;
let b = a++;
console.log(a); // 6
console.log(b); // 5
Постфіксний інкремент аналогічний операції:
a = a + 1; // a++
Декремент зменшує значення змінної на одиницю. Також є префіксний і постфіксний декремент:
// префіксний декремент
let x = 5;
let z = --x;
console.log(x); // 4
console.log(z); // 4
// постфіксний декремент
let a = 5;
let b = a--;
console.log(a); // 4
console.log(b); // 5
Як і заведено в математиці, всі операції виконуються зліва направо і розрізняються за пріоритетами: спочатку операції інкременту і декременту, потім виконуються множення і ділення, а потім додавання і віднімання. Щоб змінити стандартний хід виконання операцій, частину виразів можна помістити в дужки:
let x = 10;
let y = 5 + (6 - 2) * --x;
console.log(y); //41
Оператори порівняння
Як правило, для перевірки умови використовуються оператори порівняння. Оператори порівняння порівнюють два значення і повертають значення true або false:
- ==
Оператор рівності порівнює два значення, і якщо вони рівні, повертає true, інакше повертає false: x == 5 - ===
Оператор тотожності також порівнює два значення та їхній тип, і якщо вони рівні, повертає true, інакше повертає false: x === 5 - !=
Порівнює два значення, і якщо вони не рівні, повертає true, інакше повертає false: x != 5 - !==
Порівнює два значення та їхні типи, і якщо вони не рівні, повертає true, інакше повертає false: x !== 5 - >
Порівнює два значення, і якщо перше більше другого, то повертає true, інакше повертає false: x > 5 - <
Порівнює два значення, і якщо перше менше другого, то повертає true, інакше повертає false: x < 5 - >=
Порівнює два значення, і якщо перше більше або дорівнює другому, то повертає true, інакше повертає false: x >= 5 - <=
Порівнює два значення, і якщо перше менше або дорівнює другому, то повертає true, інакше повертає false: x <= 5
Усі оператори досить прості, напевно, за винятком оператора рівності та оператора тотожності. Вони обидва порівнюють два значення, але оператор тотожності також бере до уваги і тип значення. Наприклад:
let income = 100;
let strIncome = "100";
let result = income == strIncome;
console.log(result); //true
Змінна result тут дорівнюватиме true, оскільки фактично і income, і strIncome представляють число 100.
Але оператор тотожності поверне в цьому випадку false, оскільки дані мають різні типи:
let income = 100;
let strIncome = "100";
let result = income === strIncome;
console.log(result); // false
Аналогічно працюють оператори нерівності != і !==.
Логічні операції
Логічні операції застосовуються для об'єднання результатів двох операцій порівняння. У JavaScript є такі логічні операції:
&&
Повертає true, якщо обидві операції порівняння повертають true, інакше повертає false:
let income = 100;
нехай відсоток = 10;
let result = income > 50 && percent < 12;
console.log(result); //true
||
Повертає true, якщо хоча б одна операція порівняння повертає true, інакше повертає false:
let income = 100;
let isDeposit = true;
let result = income > 50 || isDeposit == true;
console.log(result); //true
!
Повертає true, якщо операція порівняння повертає false:
let income = 100;
let result1 = !(income > 50);
console.log(result1); // false, оскільки income > 50 повертає true
let isDeposit = false;
let result2 = !isDeposit;
console.log(result2); // true
Операції присвоювання
=
Прирівнює змінній певне значення: let x = 5;
+=
Додавання з подальшим присвоєнням результату. Наприклад:
let a = 23;
a += 5; // аналогічно a = a + 5
console.log(a); // 28
-=
Віднімання з подальшим присвоєнням результату. Наприклад:
let a = 28;
a -= 10; // аналогічно a = a - 10
console.log(a); // 18
*=
Множення з подальшим присвоєнням результату:
let x = 20;
x *= 2; // аналогічно x = x * 2
console.log(x); // 40
**=
Піднесення до степеня з подальшим присвоєнням результату:
let x = 5;
x **= 2;
console.log(x);// 25
/=
Ділення з подальшим присвоєнням результату:
let x = 40;
x /= 4; // аналогічно x = x / 4
console.log(x); // 10
%=
Отримання залишку від ділення з подальшим присвоєнням результату:
let x= 10;
x %= 3; // аналогічно x = x % 3
console.log(x); // 1, оскільки 10 - 3*3 = 1
&&=
a &&= b повертає b, якщо і a і b дорівнюють true. Якщо якийсь із операндів дорівнює false, то повертається a. Аналогічно виконанню a = a && b:
let x = true;
let y = false;
y &&= x;
console.log(y); // false
let c = false;
let d = true;
c &&= d;
console.log(c); // false
let a = true;
let b = true;
a &&= b;
console.log(a); // true
let e = false;
let f = false;
e &&= f;
console.log(e); // false
||=
a ||= b еквівалентно виразу a = a || b:
let x = true;
let y = false;
y ||= x;
console.log(y); // true
let a = true;
let b = true;
a ||= b;
console.log(a); // true
let c = false;
let d = true;
c ||= d;
console.log(c); // true
let e = false;
let f = false;
e ||= f;
console.log(e); // false