Оператори мови JavaScript. Класифікація операторів
Зміст
- 1. Поняття оператору
- 2. Класифікація операторів
- 3. Математичні (арифметичні) оператори
- 4. Оператори присвоювання
- 5. Оператори порівняння
- 6. Логічні оператори
- 7. Двійкові (побітові) оператори
- 8. Рядковий оператор +
- 9. Оператори взаємодії чисел та рядків –, *, /
- Споріднені теми
Пошук на інших ресурсах:
1. Поняття оператору
Оператори дозволяють виконувати різноманітні дії над даними (значеннями) та повертати результат цих дій. У мові JavaScript в залежності від кількості операндів (значень) оператори поділяються на дві групи:
- унарні. Це оператори, які потребують одного операнда. Наприклад, оператор – (мінус), що визначає від’ємне число: -28, -3.55;
- бінарні. Для отримання результату ці оператори використовують два операнди. Наприклад, оператори + (додавання), – (віднімання), * (множення) тощо.
Операндами в операторах можуть бути:
- константи;
- змінні;
- вирази (так само містять оператори);
- функції.
Оператори повертають тільки одне значення.
Приклади.
var x = 25 var y = 37 var z // бінарний оператор * (множення) z = x * y // унарний оператор - (мінус), від'ємне число z = -37
⇑
2. Класифікація операторів
У мові JavaScript оператори поділяються на наступні групи:
- математичні оператори;
- оператори присвоювання;
- оператори порівняння;
- логічні оператори;
- двійкові оператори або побітові оператори;
- рядковий оператор +;
- спеціальні оператори.
⇑
3. Математичні (арифметичні) оператори
До математичних операторів відносяться наступні:
- + – додавання;
- – – віднімання;
- * – множення;
- / – ділення;
- % – ділення за модулем;
- ++ – оператор інкременту;
- −− – оператор декременту.
Приклад.
// Математичні оператори // 1. Додавання + var x, y, z; x = 2.88 y = 3 z = x + y // z = 5.88 z = x + y + y // z = 8.88 // 2. Віднімання - z = x - y // z = -0.12 x = 5 - y // x = 2 // 3. Множення * x = 8 y = 20.5 z = x * y // z = 164 // 4. Ділення / z = 10 / 5 // z = 2 z = x / 3 // z = 2.6666666666666665 // 5. Інкремент ++ x = 5 x++ // x = x + 1 => x = 6 x = 5 z = x++ // z = 5, x = 6 - постфіксна форма x = 5 z = ++x // x = 6, z = 6 - префіксна форма // 6. Декремент -- y = 3 y-- // y = y - 1 => y = 2 y = 3 z = y-- // z = 2, y = 3 y = 3 z = --y // y = 3, z = 3 // 7. Ділення за модулем (остача від ділення націло) x = 8 y = 3 z = x % y // z = 2 z = 5 % 1 // z = 0 z = 3 % 8 // z = 3 z = 0 % 10 // z = 0 z = 7 % 7 // z = 0
⇑
4. Оператори присвоювання
Оператори присвоювання дозволяють встановлювати значення змінним, збільшувати або зменшувати значення змінних на вказану величину тощо.
В перелік операторів присвоювання мови JavaScript входять наступні:
- = – присвоює змінній деяке значення;
- += – збільшує значення змінної на вказану величину;
- -= – зменшує значення змінної на вказану величину;
- *= – множить значення змінної на вказану величину;
- /= – ділить значення змінної на задану величину;
- %= – ділить значення змінної на вказану величину і повертає остачу від ділення.
Приклад.
// Оператори присвоювання var x // 1. Оператор = x = 120 // 2. Оператор += x += 30 // x = x+30 => 150 // 3. Оператор -= x -= 10 // x = x-10 => 140 // 4. Оператор *= x = 100 x *= 2.5 // x = x*2.5 => 250 // 5. Оператор /= x = 55 x /= 3 // x = x/3 => 18.333333333333332 // 6. Оператор %= x = 8 x %= 3 // x = x%3 => 2
⇑
5. Оператори порівняння
Оператори порівняння здійснюють перевірку операндів на рівність, нерівність тощо. Результатом повернення оператора порівняння є значення true або false
У мові JavaScript реалізовано наступні оператори порівняння:
- == – рівно (якщо операнди рівні, то повертається значення true);
- != – не рівно;
- === – строго рівно;
- !== – строго не рівно;
- > – більше;
- >= – більше або рівне;
- < – менше;
- <= – менше або рівне.
Приклад.
// Оператори порівняння var x, y var b // 1. == - рівність // 1.1. Порівняння чисел x = 3 y = 4 b = x == y // b = false // 1.2. Порівняння рядків b = "abc" == "abc" // b = true b = "abcd" == "abcde" // b = false // 1.3. Порівняння числа і рядка b = "5" == 5 // b = true // 2. != - не рівність b = 6 != 6 // b = false b = "ab" != "ba" // b = true b = true != false // b = true b = "2.2" != 2.2 // b = false - порівняння числа і рядка // 3. >, >= - більше, більше або рівне x = 8; y = 10 b = x > y // b = false b = y >= x // b = true b = y >= 10 // b = true b = "abc" >= "abcd" // b = false // 4. <, <= - менше, менше або рівне x = 5.2; y = 3.4 b = x < y // b = false b = y < x // b = true b = y <= x // b = true b = x <= 5.2 // b = true b = "aaa" <= "aaaa" // b = true // 5. === - строго рівно b = 5==="5" // b = false // 6. !== - строго не рівно b = 5!=="5" // b = true
⇑
6. Логічні оператори
Логічні оператори визначають істинність (true) або хибність (false) логічного виразу. У мові JavaScript є три логічні оператори.
1. ! – заперечення або логічне НІ (NOT).
При логічному запереченні значення true стає false, а значення false стає рівним true.
2. && – логічне І (AND). Для двох операндів логічного типу використання цього оператора дає наступний результат:
false && false = false false && true = false true && false = false true && true = true
3. || – логічне АБО (OR). Оператор || повертає логічне true або false відповідно до наступної таблиці
false || false = false false || true = true true || false = true true || true = true
Приклад.
// Логічні оператори var x, y, z // 1. Оператор ! - логічне заперечення x = true z = !x // z = false z = !(9<=6) // z = true // 2. Оператор && - логічне І (AND) x = true y = false z = x && y // z = false z = (5>4) && (3<=7) // z = true // 3. Оператор || - логічне АБО (OR) z = true || (6>0) // z = true z = (5<3) || (4>10) // z = false
⇑
7. Двійкові (побітові) оператори
Двійкові оператори виконують дії над розрядами чисел, які представлені двійковою системою зчислення. Ці оператори ще називають порозрядні або побітові оператори.
Мова JavaScript містить наступні двійкові оператори:
- ~ – двійкова інверсія (порозрядне логічне заперечення). Значення бітів 1 стають рівними 0, і, навпаки, значення бітів 0 стають рівними 1.
- & – двійкове (побітове) І (AND). Результат обробки двох біт визначаються операцією логічного множення за наступним принципом:
0 & 0 = 0 0 & 1 = 0 1 & 0 = 0 1 & 1 = 1
- | – двійкове АБО (OR). Біти кожного з двох операндів взаємодіють за наступною схемою:
0 | 0 = 0 0 | 1 = 1 1 | 0 = 1 1 | 1 = 1
- ^ – двійкове виключне АБО (XOR). Результат цієї операції для двох заданих бітів формується за наступними правилами
0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 1
- << – зсув вліво на задану кількість розрядів з заповненням молодших розрядів нулями. З допомогою зсуву вліво можна отримати число, яке є помножене на 2n, де n – кількість розрядів на які зсувається вихідне число.
- >> – зсув вправо на задану кількість розрядів з заповненням старших розрядів значенням біту старшого розряду. Зсув вправо ділить вихідне число на 2n, де n – кількість розрядів на які зсувається вихідне число.
- >>> – зсув вправо без врахування знаку. Це є зсув вправо на один чи більше розрядів з заповненням старших розрядів нулями.
Приклад.
// Двійкові оператори var x var y // 1. Оператор & - логічне І (AND) x = 10 // x = 1010 y = 7 // y = 0111 z = x & y // z = 0010 => 2 // 2. Оператор | - логічне АБО (OR) x = 10 // x = 1010 y = 6 // y = 0110 z = x | y // z = 1110 => 14 // 3. Оператор ~ - двійкова інверсія x = 255 // x = 11111111 z = ~x // z = (1)00000000 => -256 x = 1 // x = 00000001 z = ~x // z = 11111110 => -2 // 4. Оператор ^ - двійкове виключне АБО x = 12 // x = 1100 y = 6 // y = 0110 z = x ^ y // z = 1010 => 10 // 5. Оператор << - зсув вліво з заповненням нулями x = 3 // x = 00000011 z = x << 2 // z = 00001100 => 12 x = 5 // x = 00000101 z = x << 1 // z = 00001010 => 10 // 6. Оператор >> - зсув вправо з заповненням старшим розрядом x = 5 // x = 00000101 z = x >> 1 // z = 00000010 => 2 x = -5 // x = 11111010 => -5 z = x >> 1 // z = 11111101 => -3 // 7. Оператор >>> - зсув вправо без врахування знаку x = -1 // x = 111...111 - 32 розряди z = x >>> 1 // z = 011...111 => 2147483647 x = 5 // x = 000...0101 - 32 розряди z = x >>> 1 // z = 000...0010 => 2
⇑
8. Рядковий оператор +
У JavaScript бінарний оператор + може застосовуватись як для обробки чисел так і для обробки рядків. При цьому розглядаються наступні можливі ситуації:
- якщо в лівій та правій частині оператора + розміщуються рядки, то оператор реалізує конкатенацію рядків (дивіться приклад нижче).
- якщо в одній з частин оператора використовується рядок, а в іншій число, то це число перетворюється в рядок і конкатенується до рядка. Іншими словами, якщо хоча б один операнд є рядком, то другий операнд також буде перетворений в рядок.
Приклад.
// Оператор обробки рядків + // 1. Конкатенація рядків var s1 = "Hello" var s2 = "world" var s3 s3 = s1 + ", " + s2 + "!" // s3 = "Hello, world!" // 2. Обробка рядка і числа s3 = "25" + 25 // s3 = "2525" s3 = 25.8 + "25.8" // s3 = "25.825.8"
⇑
9. Оператори взаємодії чисел та рядків –, *, /
Оператори – (мінус), * (множення), / (ділення) можуть використовувати в якості операндів числа та рядки одночасно. У цьому випадку рядкове значення буде перетворене в числове і виконана відповідна операція.
Приклад.
// Оператори обробки чисел та рядків -, *, / // 1. Оператор - (мінус) var str = "35" var num = 50 var res = num - str // res = 50 - 35 = 15 res = "20" - 80 // res = -60 // 2. Оператор * (множення) str = "200" num = 10 res = num * str // res = 2000 res = "5" * 23.5 // res = 117.5 // 3. Оператор / (ділення) res = 50 / "50" // res = 1 res = "2.5" / 10 // res = 0.25
⇑
Споріднені теми
- Пріоритет операторів
- Змінні. Примітивні типи даних. Коментарі. Константи. Ключові слова var, const. Оператор typeof
⇑