add typescript
This commit is contained in:
43
docs/javascript/01-base/05-compare-ops.md
Normal file
43
docs/javascript/01-base/05-compare-ops.md
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
sidebar_position: 5
|
||||
---
|
||||
|
||||
# Операторы сравнения
|
||||
***Результат сравнения имеет логический тип***
|
||||
- Больше/меньше: a \> b, a \< b.
|
||||
- Больше/меньше или равно: a \>= b, a \<= b.
|
||||
- Равно: a == b. Обратите внимание, для сравнения используется двойной знак равенства ==. Один знак равенства a = b означал бы присваивание.
|
||||
- Не равно. В математике обозначается символом ≠, но в JavaScript записывается как a != b.
|
||||
|
||||
## Сравнение строк
|
||||
Чтобы определить, что одна строка больше другой, JavaScript использует «алфавитный» или «лексикографический» порядок.\
|
||||
Другими словами, строки сравниваются посимвольно.
|
||||
|
||||
❗ ***Используется кодировка Unicode, а не настоящий алфавит***
|
||||
|
||||
Алгоритм сравнения двух строк довольно прост:
|
||||
- Сначала сравниваются первые символы строк.
|
||||
- Если первый символ первой строки больше (меньше), чем первый символ второй, то первая строка больше (меньше) второй. Сравнение завершено.
|
||||
- Если первые символы равны, то таким же образом сравниваются уже вторые символы строк.
|
||||
- Сравнение продолжается, пока не закончится одна из строк.
|
||||
- Если обе строки заканчиваются одновременно, то они равны. Иначе, большей считается более длинная строка.
|
||||
|
||||
## Сравнение разных типов
|
||||
Использование обычного сравнения `==` может вызывать проблемы.
|
||||
Это происходит из-за того, что операнды разных типов преобразуются оператором `==` к числу. В итоге, и пустая строка, и false становятся нулём.
|
||||
|
||||
**Оператор строгого равенства `===` проверяет равенство без приведения типов.**
|
||||
|
||||
## Сравнение с null и undefined
|
||||
|
||||
Поведение `null` и `undefined` при сравнении с другими значениями — особое:
|
||||
|
||||
При строгом равенстве **===** \
|
||||
Эти значения различны, так как различны их типы.
|
||||
|
||||
При нестрогом равенстве **==** \
|
||||
Эти значения равны друг другу и не равны никаким другим значениям. Это специальное правило языка.
|
||||
|
||||
При использовании математических операторов и других операторов сравнения \< \> \<= \>=
|
||||
Значения null/undefined преобразуются к числам: `null` становится 0, а `undefined` – NaN.
|
||||
|
||||
Reference in New Issue
Block a user