Skip to content

Commit 58b12b2

Browse files
committed
types.equality
1 parent cca783b commit 58b12b2

File tree

3 files changed

+11
-12
lines changed

3 files changed

+11
-12
lines changed

doc/ru/index.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@
5555
]
5656
},
5757
{
58-
"title": "Нативности",
58+
"title": "Ядро",
5959
"dir": "core",
6060
"articles": [
6161
"eval",

doc/ru/types/casting.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
## Приведение типов
22

3-
JavaScript *слабо типизированный* язык, поэтому *преобразование типов* будет применяться **везде**, где возможно.
3+
JavaScript *слабо типизированный* язык, поэтому *преобразование типов* будет применяться **везде**, где это возможно.
44

55
// Эти равенства — истинны
66
new Number(10) == 10; // Number.toString() преобразуется

doc/ru/types/equality.md

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
##  Равенство и сравнение
1+
##  Равенство и сравнения
22

33
JavaScript умеет сравнивать значения объектов на равенство двумя различными способами.
44

55
### Оператор сравнения
66

77
Оператор сравнения состоит из **двух** символов равенства: `==`
88

9-
*Слабая типизация* языка JavaScript подразумевает **приведение** обеих переменных к **одному типу** для того, чтобы сравнить два объекта.
9+
Под *слабой типизацией* языка JavaScript подразумевается **приведение** обеих переменных к **одному типу** при сравнении двух объектов.
1010

1111
"" == "0" // false
1212
0 == "" // true
@@ -18,15 +18,15 @@ JavaScript умеет сравнивать значения объектов н
1818
null == undefined // true
1919
" \t\r\n" == 0 // true
2020

21-
В таблице выше показаны результаты приведения типов и это главная причина почему использование `==` повсеместно считается плохой практикой: оно приводит к трудностям в отслеживании ошибок из-за сложных правил преобразования типов.
21+
В таблице выше показаны результаты приведения типов в разных ситуациях и показана главная причина, по которой использование `==` повсеместно считается плохой практикой: благодаря непредсказуемости правил преобразования типов, оказывается трудно искать причины возникновения ошибок.
2222

23-
Кроме того, приведение типов во время сравнения также влияет на производительность; например, строка должна быть преобразована в число перед сравнением с другим числом.
23+
Кроме того, приведение типов во время сравнения вынужденно влияет на производительность; например, строка должна быть преобразована в число перед сравнением с другим числом.
2424

2525
### Оператор строгого равенства
2626

2727
Оператор строгого равенства состоит из **трёх** символов равенства: `===`
2828

29-
Он работает также как и обычный оператор сравнения, но оператор строгого равенства **не** выполняет приведение типов между операндами.
29+
Он работает также как и обычный оператор сравнения, но оператор строгого равенства **не** выполняет приведения типов между своими операндами.
3030

3131
"" === "0" // false
3232
0 === "" // false
@@ -38,21 +38,20 @@ JavaScript умеет сравнивать значения объектов н
3838
null === undefined // false
3939
" \t\r\n" === 0 // false
4040

41-
Результаты выше более понятны и позволяют быстрее выявлять ошибки в коде. Это в определённой степени улучшает код, а также дает прирост производительности в случае, если операнды имеют различные типы.
41+
Результаты выше более предсказуемы и помогают быстрее выявлять ошибки в коде. Использование оператора в определённой степени делает код надёжнее, а кроме того обспечивает прирост производительности в случае, если типы операндов различны.
4242

4343
### Сравнение объектов
4444

45-
Хотя оба оператора `==` и `===` заявлены как операторы равенства, они ведут себя по-разному, когда хотя бы один из операндов является `Object`.
45+
Хотя оба оператора `==` и `===` заявлены как операторы равенства, они ведут себя по-разному, когда хотя бы одним из операндов оказывается `Object`.
4646

4747
{} === {}; // false
4848
new String('foo') === 'foo'; // false
4949
new Number(10) === 10; // false
5050
var foo = {};
5151
foo === foo; // true
5252

53-
Здесь оба операнда сравниваются на **идентичность**, а **не** на равенство; то есть, будет проверяться, являются ли операнды одним **экземпляром** объекта, так же как делает `is` в Python и сравниваются указатели в С.
53+
Здесь оба операнда сравниваются на **идентичность**, а **не** на равенство; то есть, будет проверяться, являются ли операнды одним и тем же **экземпляром** объекта, так же как делает `is` в Python или сравниваются указатели в С.
5454

5555
### Заключение
5656

57-
Крайне рекомендуется использовать только операторы **строгого равенства**. В случае, когда намечается преобразование типов, нужно сделать [явное приведение](#types.casting) и не оставлять их на совести языковых хитростей с преобразованиями.
58-
57+
Крайне рекомендуется использовать только операторы **строгого равенства**. В случаях, когда необходимо использовать преобразование типов, нужно сделать [явное приведение](#types.casting), а не оставлять его на совести нарочито мудрых языковых операций.

0 commit comments

Comments
 (0)