Операторы в JavaScript

Операторы в JavaScript

В этой статье мы объясним операторы в JavaScript.

YouTube Video

Операторы в JavaScript

Операторы в JavaScript — это символы или ключевые слова, используемые для выполнения вычислений или сравнений чисел и переменных. Существует несколько типов операторов, каждый из которых выполняет разные операции. Вот краткое описание некоторых основных операторов:.

Арифметические операторы

Арифметические операторы JavaScript включают следующее:.

Оператор Описание Пример Результат
+ Сложение 5 + 2 7
- Вычитание 5 - 2 3
* Умножение 5 * 2 10
/ Деление 5 / 2 2.5
% Модуль (остаток) 5 % 2 1
++ Инкремент (увеличение на 1) let x = 5; x++ 6
-- Декремент (уменьшение на 1) let x = 5; x-- 4
 1let a = 10; // Initialize variable 'a' with the value 10
 2let b = 3;  // Initialize variable 'b' with the value 3
 3
 4// Perform and display arithmetic operations between 'a' and 'b'
 5console.log("Addition (a + b):      ", a + b); // 13
 6console.log("Subtraction (a - b):   ", a - b); // 7
 7console.log("Multiplication (a * b):", a * b); // 30
 8console.log("Division (a / b):      ", a / b); // 3.333...
 9console.log("Modulus (a % b):       ", a % b); // 1
10
11// Demonstrate post-increment operation on 'a'
12// Output the current value of 'a' (10), then increment
13console.log("Post-increment (a++):  ", a++);
14// Display the incremented value of 'a' (11)
15console.log("Value of 'a' after increment:", a);
16
17// Demonstrate pre-increment operation on 'a'
18// Increment 'a' first (12) then output
19console.log("Pre-increment (++a):   ", ++a);
20
21// Demonstrate post-decrement operation on 'a'
22// Output the current value of 'a' (12), then decrement
23console.log("Post-decrement (a--):  ", a--);
24// Display the decremented value of 'a' (11)
25console.log("Value of 'a' after decrement:", a);
26
27// Demonstrate pre-decrement operation on 'a'
28// Decrement 'a' first (10) then output
29console.log("Pre-decrement (--a):   ", --a);

Арифметические операторы выполняют базовые математические операции с числами. Помимо сложения и вычитания, вы можете выполнять такие операции, как модуль, инкремент и декремент. Обратите внимание, что возвращаемое значение при инкременте или декременте зависит от того, стоит ли оператор перед операндом или после него.

Операторы присваивания

Операторы присваивания JavaScript включают следующее:.

Оператор Описание Пример Результат
= Присваивание x = 5 x присваивается значение 5
+= Операция присваивания со сложением x += 5 x = x + 5
-= Операция присваивания с вычитанием x -= 5 x = x - 5
*= Операция присваивания с умножением x *= 5 x = x * 5
/= Операция присваивания с делением x /= 5 x = x / 5
%= Оператор присваивания с остатком x %= 5 x = x % 5
 1let x = 10;
 2
 3x += 5;  // x = x + 5, so x becomes 15
 4console.log('After x += 5 : ', x);  // 15
 5
 6x -= 10;
 7console.log('After x -= 10 : ', x);  // 5
 8
 9x *= 3;
10console.log('After x *= 3 : ', x);  // 15
11
12x /= 3;
13console.log('After x /= 3 : ', x);  // 5
14
15x %= 2;
16console.log('After x %= 2 : ', x);  // 1

Операторы присваивания используются для присвоения значений переменным или их обновления. Помимо обычного присваивания, существуют операторы присваивания для арифметических операций, таких как сложение и остаток от деления.

Операторы сравнения

Операторы сравнения JavaScript включают следующее:.

Оператор Описание Пример Результат
== Равно 5 == "5" true
=== Строго равно (И тип, и значение совпадают) 5 === "5" false
!= Не равно 5 != "5" false
!== Строго не равно 5 !== "5" true
> Больше 5 > 2 true
< Меньше 5 < 2 false
>= Больше или равно 5 >= 5 true
<= Меньше или равно 5 <= 4 false
 1console.log("5 == '5' evaluates to:", 5 == "5");   // true (because the values are equal)
 2console.log("5 === '5' evaluates to:", 5 === "5"); // false (because the types are different)
 3console.log("5 != '5' evaluates to:", 5 != "5");   // false
 4console.log("5 !== '5' evaluates to:", 5 !== "5"); // true
 5console.log("5 > 2 evaluates to:", 5 > 2);         // true
 6console.log("5 < 2 evaluates to:", 5 < 2);         // false
 7console.log("5 >= 5 evaluates to:", 5 >= 5);       // true
 8console.log("5 <= 4 evaluates to:", 5 <= 4);       // false
 9console.log("5 >= '5' evaluates to:", 5 >= "5");   // true
10console.log("5 <= '5' evaluates to:", 5 <= "5");   // true
  • Операторы сравнения сравнивают значения и возвращают true или false.
  • Оператор равенства (==) автоматически преобразует разные типы, если это необходимо, перед выполнением сравнения. Оператор строгого равенства (===) не выполняет никакого преобразования типов во время сравнения и возвращает true только в том случае, если оба значения имеют одинаковый тип и одинаковое значение. Использование оператора строгого равенства (===) помогает предотвратить ошибки, вызванные нежелательным преобразованием типов, поэтому рекомендуется использовать его в приоритетном порядке.

Логические операторы

Логические операторы JavaScript включают следующее:.

Оператор Описание Пример Результат
&& И (true, если оба условия истинны) true && false false
|| ИЛИ (true, если хотя бы одно из условий истинно) true || false true
! НЕ (преобразует true в false и false в true) !true false
1let a = true;
2let b = false;
3
4console.log("a && b evaluates to:", a && b);  // false
5console.log("a || b evaluates to:", a || b);  // true
6console.log("!a evaluates to:", !a);          // false

Логические операторы используются, когда есть несколько условий, для оценки их комбинаций.

Приоритет логических операторов

В JavaScript логические операторы, как правило, оцениваются в порядке: сначала NOT, затем AND, и, наконец, OR.

NOT имеет самый высокий приоритет

NOT — это унарный оператор, который оценивается с наивысшим приоритетом.

1console.log(!true || false);  // false
AND имеет приоритет выше, чем OR

AND имеет больший приоритет, чем OR, поэтому часть с AND оценивается первой.

1console.log(true || false && false);  // true

Таким образом, часть AND (&&) вычисляется первой, и её результат передаётся в OR (||).

AND и OR выполняют короткозамкнутую оценку

Операторы AND и OR в JavaScript выполняют короткозамкнутую оценку. Если результат может быть определён на основе значения левой стороны, выражение с правой стороны не оценивается.

1let a = false && console.log("This will not be printed");
2console.log(a);  // false
3
4let b = true || console.log("This will not be printed");
5console.log(b);  // true

В любом случае console.log() не будет выполнен.

Установите явный приоритет

Явно группируя выражения с помощью скобок, вы можете избежать недоразумений относительно приоритета операций.

1console.log(true || (false && false));  // true
Различия между естественным языком и интерпретацией программы

При использовании логических операторов важно учитывать возможные неоднозначности естественного языка. Например, выражение «белая собака или кошка» может означать либо «белая собака или кошка любого цвета», либо «белая собака или белая кошка». В коде это будет выглядеть так:.

1if (isWhite && isDog || isCat) {
2    console.log(' "A white dog" or "a cat of any color" ');
3}
4
5if (isWhite && (isDog || isCat)) {
6    console.log(' "A white dog" or "a white cat" ');
7}
8
9console.log(true || (false && false));  // true

Поскольку естественный язык содержит такие неоднозначности, во время кодирования или проектирования нужно быть осторожным.

Тернарный оператор (условный оператор)

В JavaScript есть тернарный оператор (условный оператор).

Оператор Описание Пример Результат
? : Если условие истинно, исполняется левая часть, если ложно - правая condition ? если true : если false Результат зависит от условия
1let age = 20;
2let message = age >= 18 ? "Adult" : "Minor";
3console.log(message);  // "Adult"

Он записывается в виде условие ? значение, если условие истинно : значение, если условие ложно.

Побитовые операторы

Побитовые операторы JavaScript включают следующее.

Оператор Описание Пример Результат
& AND 5 & 1 1
| OR 5 | 1 5
^ XOR 5 ^ 1 4
~ NOT ~5 -6
<< Сдвиг влево 5 << 1 10
>> Сдвиг вправо 5 >> 1 2
 1let x = 0x0F & 0x0C;
 2console.log("0x0F & 0x0C evaluates to:", x, "(0x0C, 12)");  // 0x0C (12)
 3
 4x = 0x04 | 0x02;
 5console.log("0x04 | 0x02 evaluates to:", x, "(0x06, 6)");  // 0x06 (6)
 6
 7x = 0x0F ^ 0x0C;
 8console.log("0x0F ^ 0x0C evaluates to:", x, "(0x03, 3)");  // 0x03 (3)
 9
10// The inverted number is represented as a negative value
11// because JavaScript numbers are stored as signed 32-bit integers.
12x = ~0x0C;
13console.log("~0x0C evaluates to:", x, "(-13, 0xF3)");  // 0xF3 (-13)
14
15x = 0x04 << 1;
16console.log("0x04 << 1 evaluates to:", x, "(0x08, 8)");    // 0x08 (8)
17x = 0x04 >> 1;
18console.log("0x04 >> 1 evaluates to:", x, "(0x02, 2)");    // 0x02 (2)

Битовые операторы выполняют вычисления с числами на уровне битов. Они обычно используются для низкоуровневой обработки.

Операторы типа

Операторы типов JavaScript включают следующее.

Оператор Описание Пример Результат
typeof Возвращает тип переменной typeof 123 "number"
instanceof Проверяет, принадлежит ли объект определённому классу arr instanceof Array true
1console.log(typeof "Hello");  // "string"
2console.log(typeof 42);       // "number"
3
4let arr = [1, 2, 3];
5console.log("arr instanceof Array : ", arr instanceof Array); // true

Операторы типа используются для проверки типа значения или для его преобразования в определённый тип.

Оператор typeof возвращает тип переменной.

Оператор instanceof проверяет, принадлежит ли объект определенному классу.

Резюме

  • Арифметические операторы выполняют базовые вычисления.
  • Операторы присваивания присваивают или обновляют значения в переменных.
  • Операторы сравнения сравнивают два значения и возвращают true или false.
  • Логические операторы оценивают комбинации условий.
  • Тернарные операторы позволяют записывать условные выражения в более короткой форме, чем if.
  • Побитовые операторы выполняют вычисления на уровне битов.
  • Операторы типа позволяют проверить тип значения.

Вы можете следовать этой статье, используя Visual Studio Code на нашем YouTube-канале. Пожалуйста, также посмотрите наш YouTube-канал.

YouTube Video