Математичні операції
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