TypeScript - Операторы

Здравствуйте, будущие программисты! Сегодня мы отправимся в увлекательное путешествие в мир операторов TypeScript. Как ваш добрый соседский учитель компьютера, я здесь, чтобы провести вас через это приключение шаг за шагом. Так что пристегнитесь и погружайтесь с нами!

TypeScript - Operators

Что такое оператор?

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

Например, когда вы видите знак "+" в вашем коде, это не просто красивое украшение. Это оператор, instructing the computer складывать вещи вместе. Круто, правда?

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

Давайте начнем с арифметических операторов. Это, наверное, самые знакомые вам операторы, так как они похожи на те, которые вы использовали на уроках математики.

Вот таблица арифметических операторов в TypeScript:

Оператор Описание Пример
+ Сложение 5 + 3
- Вычитание 7 - 2
* Умножение 4 * 6
/ Деление 8 / 2
% Остаток от деления 9 % 4
++ Увеличение let x = 5; x++;
-- Уменьшение let y = 3; y--;

Давайте посмотрим, как они работают:

let a: number = 10;
let b: number = 5;

console.log(a + b);  // Вывод: 15
console.log(a - b);  // Вывод: 5
console.log(a * b);  // Вывод: 50
console.log(a / b);  // Вывод: 2
console.log(a % b);  // Вывод: 0

let c: number = 7;
c++;
console.log(c);  // Вывод: 8

let d: number = 3;
d--;
console.log(d);  // Вывод: 2

В этом примере мы выполняем различные арифметические операции с нашими переменными. Оператор остатка (%) может быть новым для некоторых из вас. Он дает нам остаток после деления. Так, 10 % 5 равен 0, так как 10 разделено на 5 не оставляет remainder.

Реляционные операторы

Следующие, у нас есть реляционные операторы. Они используются для сравнения значений и возвращают true или false в зависимости от результата сравнения.

Вот таблица реляционных операторов:

Оператор Описание Пример
== Равно 5 == 5
!= Не равно 5 != 3
> Больше 7 > 3
< Меньше 2 < 8
>= Больше или равно 5 >= 5
<= Меньше или равно 4 <= 4

Давайте посмотрим, как они работают:

let x: number = 5;
let y: number = 10;

console.log(x == y);  // Вывод: false
console.log(x != y);  // Вывод: true
console.log(x > y);   // Вывод: false
console.log(x < y);   // Вывод: true
console.log(x >= 5);  // Вывод: true
console.log(y <= 10); // Вывод: true

Эти операторы super useful, когда вам нужно принимать решения в вашем коде на основе сравнения значений.

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

Логические операторы используются для определения логики между переменными или значениями. Они как Шерлок Холмс программирования, помогая нам deduce истины из нескольких условий.

Вот таблица логических операторов:

Оператор Описание Пример
&& Логическое И true && false
|| Логическое ИЛИ true || false
! Логическое НЕ !true

Давайте посмотрим, как они работают:

let isRaining: boolean = true;
let isWarm: boolean = false;

console.log(isRaining && isWarm);  // Вывод: false
console.log(isRaining || isWarm);  // Вывод: true
console.log(!isRaining);           // Вывод: false

В этом примере && возвращает true только если оба условия истины. || возвращает true если хотя бы одно условие истины. !否定 boolean значение.

Битовые операторы

Теперь мы отправляемся в более сложную территорию. Битовые операторы выполняют операции на двоичных представлениях чисел. Не волнуйтесь, если это звучит сложно - мы разберем это!

Вот таблица битовых операторов:

Оператор Описание Пример
& Битовое И 5 & 3
| Битовое ИЛИ 5 | 3
^ Битовое Исключающее ИЛИ 5 ^ 3
~ Битовое НЕ ~5
<< Сдвиг влево 5 << 1
>> Сдвиг вправо 5 >> 1

Давайте посмотрим на пример:

let a: number = 5;  // двоично: 0101
let b: number = 3;  // двоично: 0011

console.log(a & b);  // Вывод: 1 (двоично: 0001)
console.log(a | b);  // Вывод: 7 (двоично: 0111)
console.log(a ^ b);  // Вывод: 6 (двоично: 0110)
console.log(~a);     // Вывод: -6 (двоично: 1010 в complement)
console.log(a << 1); // Вывод: 10 (двоично: 1010)
console.log(a >> 1); // Вывод: 2 (двоично: 0010)

Эти операторы работают с двоичными (восьмеричными) представлениями чисел. Они особенно полезны в низкоуровневом программировании и某些 алгоритмах.

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

Операторы присваивания используются для назначения значений переменным. Они как搬运щики в программировании, putting значения в их правильные дома (переменные).

Вот таблица операторов присваивания:

Оператор Описание Пример
= Присвоить x = 5
+= Сложить и присвоить x += 3
-= Вычесть и присвоить x -= 2
*= Умножить и присвоить x *= 4
/= Разделить и присвоить x /= 2
%= Остаток и присвоить x %= 3

Давайте посмотрим, как они работают:

let x: number = 10;

x += 5;  // эквивалентно: x = x + 5
console.log(x);  // Вывод: 15

x -= 3;  // эквивалентно: x = x - 3
console.log(x);  // Вывод: 12

x *= 2;  // эквивалентно: x = x * 2
console.log(x);  // Вывод: 24

x /= 4;  // эквивалентно: x = x / 4
console.log(x);  // Вывод: 6

x %= 4;  // эквивалентно: x = x % 4
console.log(x);  // Вывод: 2

Эти операторы są shortcuts, делающие наш код более кратким и читаемым.

Прочие операторы

TypeScript также имеет несколько других операторов, которые не вписываются в предыдущие категории.

Вот таблица некоторых дополнительных операторов:

Оператор Описание Пример
?: Условный (ternary) condition ? expr1 : expr2
, Запятая let x = (1, 2, 3)
delete Удалить свойство delete obj.property
typeof Тип переменной typeof x
void Вычислить выражение и вернуть undefined void(0)

Давайте посмотрим на пример условного оператора, который super handy:

let age: number = 20;
let canVote: string = age >= 18 ? "Yes" : "No";
console.log(canVote);  // Вывод: "Yes"

Это короткий способ записи условия if-else. Если условие (age >= 18) истины, оно возвращает "Yes", в противном случае "No".

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

Наконец, давайте посмотрим на некоторые операторы, специфичные для TypeScript, которые помогают нам работать с типами.

Вот таблица операторов типов:

Оператор Описание Пример
typeof Получить тип переменной typeof x
instanceof Проверить, является ли объект экземпляром класса obj instanceof Class
as Утверждение типа (someValue as string).toUpperCase()
Утверждение типа (альтернативный синтаксис) (someValue).toUpperCase()

Давайте посмотрим на пример:

let x: any = "Hello, TypeScript!";
let length: number = (x as string).length;
console.log(length);  // Вывод: 20

class Animal {}
class Dog extends Animal {}

let myPet = new Dog();
console.log(myPet instanceof Animal);  // Вывод: true

В этом примере мы используем утверждение типа, чтобы сказать TypeScript, что мы знаем x является строкой, даже если он typed как any. Мы также используем instanceof, чтобы проверить, является ли myPet экземпляром класса Animal.

И вот оно, folks! Мы совершили путешествие по операторам TypeScript. Помните, что практика делает perfect, так что не бойтесь экспериментировать с этими операторами в вашем собственном коде. Счастливого кодирования!

Credits: Image by storyset