JavaScript. Оператори мови JavaScript. Класифікація операторів

Оператори мови JavaScript. Класифікація операторів


Зміст


Пошук на інших ресурсах:

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. ~ – двійкова інверсія (порозрядне логічне заперечення). Значення бітів 1 стають рівними 0, і, навпаки, значення бітів 0 стають рівними 1.
  2. & – двійкове (побітове) І (AND). Результат обробки двох біт визначаються операцією логічного множення за наступним принципом:
0 & 0 = 0
0 & 1 = 0
1 & 0 = 0
1 & 1 = 1
  1. | – двійкове АБО (OR). Біти кожного з двох операндів взаємодіють за наступною схемою:
0 | 0 = 0
0 | 1 = 1
1 | 0 = 1
1 | 1 = 1
  1. ^ – двійкове виключне АБО (XOR). Результат цієї операції для двох заданих бітів формується за наступними правилами
0 ^ 0 = 0
0 ^ 1 = 1
1 ^ 0 = 1
1 ^ 1 = 1
  1. << – зсув вліво на задану кількість розрядів з заповненням молодших розрядів нулями. З допомогою зсуву вліво можна отримати число, яке є помножене на 2n, де n – кількість розрядів на які зсувається вихідне число.
  2. >> – зсув вправо на задану кількість розрядів з заповненням старших розрядів значенням біту старшого розряду. Зсув вправо ділить вихідне число на 2n, де n – кількість розрядів на які зсувається вихідне число.
  3. >>> – зсув вправо без врахування знаку. Це є зсув вправо на один чи більше розрядів з заповненням старших розрядів нулями.

Приклад.

// Двійкові оператори
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     // x = 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

 


Споріднені теми