You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/02-first-steps/07-type-conversions/article.md
+11-23Lines changed: 11 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
Чаще всего операторы и функции автоматически приводят переданные им значения к нужному типу.
4
4
5
-
Например, `alert` автоматически преобразует любое значение к строке. Математические операторы преобразуют значения к числам.
5
+
Например, `alert` автоматически преобразует любое значение к строке. Математические операторы преобразуют значения к числам.
6
6
7
7
Есть также случаи, когда нам нужно явно преобразовать значение в ожидаемый тип.
8
8
@@ -37,7 +37,7 @@ alert(typeof value); // string
37
37
Например, когда операция деления `/` применяется не к числу:
38
38
39
39
```js run
40
-
alert( "6"/"2" ); // 3, Строки преобразуются в числа
40
+
alert( "6"/"2" ); // 3, строки преобразуются в числа
41
41
```
42
42
43
43
Мы можем использовать функцию `Number(value)`, чтобы явно преобразовать `value` к числу:
@@ -58,7 +58,7 @@ alert(typeof num); // number
58
58
```js run
59
59
let age =Number("Любая строка вместо числа");
60
60
61
-
alert(age); // NaN, преобразование не удалось
61
+
alert(age); // NaN, преобразование не удалось
62
62
```
63
63
64
64
Правила численного преобразования:
@@ -68,37 +68,26 @@ alert(age); // NaN, преобразование не удалось
68
68
|`undefined`|`NaN`|
69
69
|`null`|`0`|
70
70
|<code>true / false</code> |`1` / `0`|
71
-
|`string`| Пробельные символы по краям обрезаются. Далее, если остаётся пустая строка, то `0`, иначе из непустой строки "считывается" число. При ошибке результат `NaN`.|
71
+
|`string`| Пробельные символы по краям обрезаются. Далее, если остаётся пустая строка, то получаем `0`, иначе из непустой строки "считывается" число. При ошибке результат `NaN`.|
72
72
73
73
Примеры:
74
74
75
75
```js run
76
76
alert( Number(" 123 ") ); // 123
77
-
alert( Number("123z") ); // NaN (ошибка чтения числа в "z")
77
+
alert( Number("123z") ); // NaN (ошибка чтения числа на месте символа "z")
78
78
alert( Number(true) ); // 1
79
79
alert( Number(false) ); // 0
80
80
```
81
81
82
82
Учтите, что `null` и `undefined` ведут себя по-разному. Так, `null` становится нулём, тогда как `undefined` приводится к `NaN`.
83
83
84
-
````smart header="Сложение '+' объединяет строки"
85
-
Почти все математические операторы выполняют численное преобразование. Исключение составляет `+`. Если одно из слагаемых является строкой, тогда и все остальные приводятся к строкам.
86
-
87
-
Тогда они конкатенируются (присоединяются) друг к другу:
88
-
89
-
```js run
90
-
alert( 1 + '2' ); // '12' (строка справа)
91
-
alert( '1' + 2 ); // '12' (строка слева)
92
-
```
93
-
94
-
Так происходит, только если хотя бы один из аргументов является строкой. Во всех остальных случаях значения складываются как числа.
95
-
````
84
+
Большинство математических операторов также производит данное преобразование, как мы увидим в следующей главе.
96
85
97
86
## Логическое преобразование
98
87
99
88
Логическое преобразование самое простое.
100
89
101
-
Происходит в логических операторах (позже мы познакомимся с подобными конструкциями), но также может быть выполнено явно с помощью функции `Boolean(value)`.
90
+
Происходит в логических операциях (позже мы познакомимся с условными проверками и подобными конструкциями), но также может быть выполнено явно с помощью функции `Boolean(value)`.
````warn header="Заметим, что строчка с нулём `\"0\"` это `true`"
107
+
````warn header="Заметим, что строчка с нулём `\"0\"`— это `true`"
119
108
Некоторые языки (к примеру, PHP) воспринимают строку `"0"` как `false`. Но в JavaScript, если строка не пустая, то она всегда `true`.
120
109
121
110
```js run
@@ -124,10 +113,9 @@ alert( Boolean(" ") ); // пробел это тоже true (любая непу
124
113
```
125
114
````
126
115
127
-
128
116
## Итого
129
117
130
-
Существует 3 наиболее широко используемых преобразований: строковое, численное и логическое.
118
+
Существует 3 наиболее широко используемых преобразования: строковое, численное и логическое.
131
119
132
120
**`Строковое`** -- Происходит, когда нам нужно что-то вывести. Может быть вызвано с помощью `String(value)`. Для примитивных значений работает очевидным образом.
133
121
@@ -140,9 +128,9 @@ alert( Boolean(" ") ); // пробел это тоже true (любая непу
140
128
|`undefined`|`NaN`|
141
129
|`null`|`0`|
142
130
|<code>true / false</code> | `1 / 0` |
143
-
| `string` | Пробельные символы по краям обрезаются. Далее, если остаётся пустая строка, то `0`, иначе из непустой строки "считывается" число. При ошибке результат `NaN`.|
131
+
| `string` | Пробельные символы по краям обрезаются. Далее, если остаётся пустая строка, то получаем `0`, иначе из непустой строки "считывается" число. При ошибке результат `NaN`.|
144
132
145
-
**`Логическое`** -- Происходит в логических операторах. Может быть вызвано с помощью `Boolean(value)`.
133
+
**`Логическое`** -- Происходит в логических операциях. Может быть вызвано с помощью `Boolean(value)`.
0 commit comments