https://learn.javascript.ru
Часть 1. Язык программирования JavaScript (в т.ч. 93 подраздела)
Разделы:
5. Типы данных (12 подразделов)
5.1 Методы у примитивов
5.2 Числа
Про типы данных в учебнике уже было в самом начале, а в этом подразделе дается более продвинутый материал по всем типам данных в языке. Такое разделение сделано потому, что для понимания продвинутого материала по типам данных нужно понимать, как работают функции и объекты. Получилось, что сначала изучили типы данных по верхам, затем разобрались в работе функций и объектов по верхам, а теперь опять вернулись к типам данных уже подробнее.
В подразделе «Методы у примитивов» рассказано, как авторы языка пытались оставить простые типы данных (примитивы), вроде чисел и строк, простыми и в то же время дать возможность использовать для таких данных методы, как у объектов. Например:
alert( 1.23456.toFixed(2) ); // 1.23
В этом примере к вещественном числу
1.23456
(простой тип данных) применяется вызов метода toFixed
, хотя вещественное число не является объектом. Пример выводит на экран сообщение со строкой 1.23
.Как оказалось, в таких случаях движок JavaScript создает временный объект-обертку с нужным методом, происходит вызов метода объекта, метод возвращает результат, а объект тут же уничтожается. По-моему, очень ловко придумано и сделано. Это удобно.
Подраздел «Числа» очень понравился, особенно часть, которая называется «Неточные вычисления». Это про особенности представления чисел с плавающей точкой (стандарт IEEE 754). Рассмотрен знаменитый случай:
alert( 0.1 + 0.2 == 0.3 ); // false
А также многое другое.
Замечательные практические задания к подразделу «Числа»! Первое задание слишком простое, а вот со второго по шестое — в самый раз. А затем обязательно окунуться в комментарии, они — огонь! Конечно, за исключением множества спамеров, но их привыкаешь пропускать мимо глаз на автомате.