Операторы в TypeScript
В этой статье объясняются операторы в TypeScript.
YouTube Video
Операторы в TypeScript
Операторы в TypeScript используются для выполнения численных вычислений, сравнений значений и логических операций. Так как TypeScript использует аналогичные операторы JavaScript, к ним легко привыкнуть, однако TypeScript позволяет выполнять более строгие операции благодаря проверке типов.
Основные операторы следующие:.
Арифметические операторы
Арифметические операторы используются для численных вычислений.
Оператор | Описание | Пример | Результат |
---|---|---|---|
+ |
Сложение | 5 + 3 |
8 |
- |
Вычитание | 5 - 3 |
2 |
* |
Умножение | 5 * 3 |
15 |
/ |
Деление | 5 / 2 |
2.5 |
% |
Остаток от деления | 5 % 2 |
1 |
++ |
Увеличение (префикс) | let x = 5; ++x |
6 |
-- |
Уменьшение (префикс) | 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);
Операторы присваивания
Операторы присваивания устанавливают значение справа переменной слева.
Оператор | Описание | Пример | Результат |
---|---|---|---|
= |
Присваивание | x = 10 |
x = 10 |
+= |
Сложить и присвоить | x += 5 |
x = 15 |
-= |
Вычесть и присвоить | x -= 5 |
x = 5 |
*= |
Умножить и присвоить | x *= 2 |
x = 20 |
/= |
Разделить и присвоить | x /= 2 |
x = 5 |
%= |
Остаток от деления и присвоить | x %= 3 |
x = 1 |
1let z = 5;
2z += 3;
3console.log(z); // Outputs: 8
4
5z *= 2;
6console.log(z); // Outputs: 16
Операторы сравнения
Операторы сравнения сравнивают значения и возвращают true
или false
.
Оператор | Описание | Пример | Результат |
---|---|---|---|
== |
Равно (без учета типа) | 5 == "5" |
true |
=== |
Строго равно (с учетом типа) | 5 === "5" |
false |
!= |
Не равно (без учета типа) | 5 != "5" |
false |
!== |
Строго не равно (с учетом типа) | 5 !== "5" |
true |
> |
Больше | 5 > 3 |
true |
< |
Меньше | 5 < 3 |
false |
>= |
Больше или равно | 5 >= 5 |
true |
<= |
Меньше или равно | 5 <= 3 |
false |
1console.log('5 == "5" :', 5 == "5"); // Outputs: true
2console.log('5 === "5" :', 5 === "5"); // Outputs: false
3console.log('5 != "5" :', 5 != "5"); // Outputs: false
4console.log('5 !== "5" :', 5 !== "5"); // Outputs: true
5console.log('5 > 3 :', 5 > 3); // Outputs: true
6console.log('5 < 3 :', 5 < 3); // Outputs: false
7console.log('5 >= 5 :', 5 >= 5); // Outputs: true
8console.log('5 <= 3 :', 5 <= 3); // Outputs: false
Логические операторы
Логические операторы используются для объединения логических выражений.
Оператор | Описание | Пример | Результат |
---|---|---|---|
&& |
Логическое И | true && false |
false |
|| |
Логическое ИЛИ | true || false |
true |
! |
Отрицание | !true |
false |
1console.log('true && false :', true && false); // Outputs: false
2console.log('true || false :', true || false); // Outputs: true
3console.log('!true :', !true); // Outputs: false
Приоритет логических операторов
В TypeScript логические операторы обычно оцениваются в порядке: сначала 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
используют короткое замыкание
В TypeScript операторы AND
и OR
используют короткое замыкание. Если результат определяется значением левой части, правая часть выражения не вычисляется.
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}
Поскольку естественный язык может быть неоднозначным, требуется осторожность при написании кода и разработке систем.
Побитовые операторы
Побитовые операторы работают с числами на уровне битов.
Оператор | Описание | Пример | Результат |
---|---|---|---|
& |
Логическое И | 5 & 1 |
1 |
` | ` | Логическое ИЛИ | 5 | 1 |
^ |
Исключающее ИЛИ (XOR) | 5 ^ 1 |
4 |
~ |
Отрицание (NOT) | ~5 |
-6 |
<< |
Сдвиг влево | 5 << 1 |
10 |
>> |
Сдвиг вправо (знаковый) | 5 >> 1 |
2 |
>>> |
Сдвиг вправо (беззнаковый) | 5 >>> 1 |
2 |
1console.log('5 & 1 :', 5 & 1); // Outputs: 1 (AND operation)
2console.log('5 | 1 :', 5 | 1); // Outputs: 5 (OR operation)
3console.log('5 ^ 1 :', 5 ^ 1); // Outputs: 4 (XOR operation)
4console.log('~5 :', ~5); // Outputs: -6 (NOT operation)
5console.log('5 << 1 :', 5 << 1); // Outputs: 10 (Left shift operation)
6console.log('5 >> 1 :', 5 >> 1); // Outputs: 2 (Right shift operation)
7console.log('5 >>> 1:', 5 >>> 1); // Outputs: 2 (Unsigned right shift operation)
Тернарный оператор
Тернарный оператор возвращает разные значения в зависимости от результата условного выражения.
1let age = 20;
2let access = (age >= 18) ? "Allowed" : "Denied";
3console.log(access); // Outputs: Allowed
Операторы типов
Операторы типов в TypeScript включают следующие:.
Оператор | Описание | Пример | Результат |
---|---|---|---|
typeof |
Возвращает тип переменной | typeof 123 |
"number" |
instanceof |
Проверяет, принадлежит ли объект определенному классу | arr instanceof Array |
true |
is |
В качестве охранного типа проверяет, является ли значение определенного типа | value is string |
true or false |
1console.log(typeof "Hello"); // "string"
2console.log(typeof 42); // "number"
3
4let arr: number[] = [1, 2, 3];
5console.log("arr instanceof Array : ", arr instanceof Array); // true
6
7// Example of Type Guard
8function isString(value: any): value is string {
9 return typeof value === "string";
10}
11
12let value: any = "Hello";
13if (isString(value)) {
14 console.log("Value is a string:", value); // "Value is a string: Hello"
15}
Операторы типов используются для проверки типа значения или его преобразования в определенный тип.
- Оператор
typeof
возвращает тип переменной. - Оператор
instanceof
проверяет, принадлежит ли объект определенному классу. - Оператор
is
используется для проверки, является ли значение определенным типом. Это часть охранных типов в TypeScript.
Резюме
- Арифметические операторы: Выполняют базовые вычисления.
- Операторы присваивания: Присваивают значения переменным.
- Операторы сравнения: Сравнивают значения.
- Логические операторы: Комбинируют логические условия.
- Побитовые операторы: Выполняют операции на побитовом уровне.
- Тернарный оператор: Возвращает значения на основе условий.
- Операторы типов могут проверять тип значения.
В TypeScript эти операторы можно использовать для эффективного написания сложных вычислений и условных выражений.
Вы можете следовать этой статье, используя Visual Studio Code на нашем YouTube-канале. Пожалуйста, также посмотрите наш YouTube-канал.