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
Как правило, ошибка в программе... Во всяком случае, в большинстве языков программирования это именно так.
38
38
39
-
Но создатель JavaScript решил пойти математически правильным путем. Ведь чем меньше делитель, тем больше результат. При делении на очень-очень маленькое число должно получиться очень большое. В математическом анализе это описывается через [пределы](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D0%B5%D0%BB_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)), и если подразумевать предел, то в качестве результата деления на `0` мы получаем "бесконечность", которая обозначается символом `∞`или, в JavaScript: `"Infinity"`.
39
+
Но создатель JavaScript решил пойти математически правильным путем. Ведь чем меньше делитель, тем больше результат. При делении на очень-очень маленькое число должно получиться очень большое. В математическом анализе это описывается через [пределы](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D0%B5%D0%BB_(%D0%BC%D0%B0%D1%82%D0%B5%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)), и если подразумевать предел, то в качестве результата деления на `0` мы получаем "бесконечность", которая обозначается символом `∞`(в JavaScript`Infinity`).
40
40
41
41
```js run
42
42
alert( 1/0 ); // Infinity
@@ -79,7 +79,7 @@ alert( 0 / 0 ); // NaN
79
79
80
80
Значение `NaN` используется для обозначения математической ошибки и обладает следующими свойствами:
81
81
82
-
- Значение `NaN` -- единственное, в своем роде, которое *не равно ничему, включая себя*.
82
+
- Значение `NaN` -- единственное в своем роде, которое *не равно ничему, включая себя*.
83
83
84
84
Следующий код ничего не выведет:
85
85
@@ -122,14 +122,14 @@ if (n !== n) alert( 'n = NaN!' );
122
122
```smart header="Математические операции в JS безопасны"
123
123
Никакие математические операции в JavaScript не могут привести к ошибке или "обрушить" программу.
124
124
125
-
В худшем случае, результат будет `NaN`.
125
+
В худшем случае результат будет `NaN`.
126
126
```
127
127
128
128
## isFinite(n)
129
129
130
130
Итак, в JavaScript есть обычные числа и три специальных числовых значения:`NaN`, `Infinity` и `-Infinity`.
131
131
132
-
Тот факт, что они, хоть и особые, но --числа, демонстрируется работой оператора `+`:
132
+
Тот факт, что они, хоть и особые, но числа, демонстрируется работой оператора `+`:
133
133
134
134
```js run
135
135
var value = prompt("Введите Infinity", 'Infinity');
@@ -141,7 +141,7 @@ var number = +value;
141
141
alert( number ); // Infinity, плюс преобразовал строку "Infinity" к такому "числу"
142
142
```
143
143
144
-
Обычно если мы хотим от посетителя получить число, то `Infinity` или `NaN` нам не подходят. Для того, чтобы отличить "обычные" числа от таких специальных значений, существует функция `isFinite`.
144
+
Обычно если мы хотим от посетителя получить число, то `Infinity` или `NaN` нам не подходят. Для того чтобы отличить "обычные" числа от таких специальных значений, существует функция `isFinite`.
145
145
146
146
**Функция `isFinite(n)` преобразует аргумент к числу и возвращает `true`, если это не `NaN/Infinity/-Infinity`:**
Для проверки строки на число можно использовать функцию `isNaN(str)`.
226
226
227
-
Она преобразует строку в число аналогично `+`, а затем вернёт `true`, если это `NaN`, т.е. если преобразование не удалось:
227
+
Она преобразует строку в число аналогично `+`, а затем вернёт `true`, если это `NaN`, то есть если преобразование не удалось:
228
228
229
229
```js run
230
230
var x = prompt("Введите значение", "-11.5");
@@ -260,16 +260,16 @@ function isNumeric(n) {
260
260
261
261
- Функция `isFinite(n)` преобразует аргумент к числу и возвращает `true`, если это не `Infinity/-Infinity/NaN`.
262
262
263
-
Таким образом, правая часть отсеет заведомо не-числа, но оставит такие значения как `true/false/null` и пустую строку `''`, т.к. они корректно преобразуются в числа.
263
+
Таким образом, правая часть отсеет заведомо не-числа, но оставит такие значения как `true/false/null` и пустую строку `''`, так как они корректно преобразуются в числа.
264
264
- Для их проверки нужна левая часть. Вызов `parseFloat(true/false/null/'')` вернёт `NaN` для этих значений.
265
265
266
-
Так устроена функция `parseFloat`: она преобразует аргумент к строке, т.е.`true/false/null` становятся `"true"/"false"/"null"`, а затем считывает из неё число, при этом пустая строка даёт `NaN`.
266
+
Так устроена функция `parseFloat`: она преобразует аргумент к строке, то есть`true/false/null` становятся `"true"/"false"/"null"`, а затем считывает из неё число, при этом пустая строка даёт `NaN`.
267
267
268
268
В результате отсеивается всё, кроме строк-чисел и обычных чисел.
269
269
270
270
## toString(система счисления)
271
271
272
-
Как показано выше, числа можно записывать не только в 10-чной, но и в 16-ричной системе. Но бывает и противоположная задача: получить 16-ричное представление числа. Для этого используется метод `toString(основание системы)`, например:
272
+
Как показано выше, числа можно записывать не только в 10-ричной, но и в 16-ричной системе. Но бывает и противоположная задача: получить 16-ричное представление числа. Для этого используется метод `toString(основание системы)`, например:
Как видно, результат разный! Вариант округления через `Math.round` получился более корректным, так как по общепринятым правилам `5` округляется вверх. А `toFixed` может округлить его как вверх, так и вниз. Почему? Скоро узнаем!
392
+
Как видно результат разный! Вариант округления через `Math.round` получился более корректным, так как по общепринятым правилам `5` округляется вверх. А `toFixed` может округлить его как вверх, так и вниз. Почему? Скоро узнаем!
: Возвращает псевдо-случайное число в интервале [0,1) - то есть между 0(включительно) и 1(не включая). Генератор случайных чисел инициализуется текущим временем.
520
+
: Возвращает псевдослучайное число в интервале [0,1) - то есть между 0(включительно) и 1(не включая). Генератор случайных чисел инициализуется текущим временем.
0 commit comments