March 14th, 2021

Учебник по JavaScript: ч.1, Типы данных

Начал читать пятый раздел («Типы данных») первой части («Язык программирования JavaScript») учебника по JavaScript.

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

А также многое другое.

Замечательные практические задания к подразделу «Числа»! Первое задание слишком простое, а вот со второго по шестое — в самый раз. А затем обязательно окунуться в комментарии, они — огонь! Конечно, за исключением множества спамеров, но их привыкаешь пропускать мимо глаз на автомате.