March 13th, 2021

Учебник по JavaScript: ч.1, Объекты: основы

Прочел четвертый раздел («Объекты: основы») первой части («Язык программирования JavaScript») учебника по JavaScript.

https://learn.javascript.ru

Часть 1. Язык программирования JavaScript (в т.ч. 93 подраздела)

Разделы:

4. Объекты: основы (8 подразделов)

4.1 Объекты
4.2 Копирование объектов и ссылки
4.3 Сборка мусора
4.4 Методы объекта, "this"
4.5 Конструкторы, создание объектов через "new"
4.6 Опциональная цепочка '?.'
4.7 Тип данных Symbol
4.8 Преобразование объектов в примитивы

В названии раздела «Объекты: основы» слово «основы» указывает на то, что в этом разделе дана только начальная часть материала про объекты в языке JavaScript. Остальная часть будет раскрыта в следующих разделах, а особенно в разделе 8 «Прототипы, наследование» и разделе 9 «Классы».

По-прежнему учебнику остро не хватает практических задач после подразделов. Там, где они есть, уже применяется автоматическое тестирование, описанное ранее в подразделе 3.5. Это очень круто, почти так, будто учитель тестирует код ученика. Тут создатели учебника молодцы.

Реализация объектов, их свойств и методов в коде отличается от реализации в языке C++. В этом вопросе JavaScript на своей волне. Но в смысле концепций, теории ООП всё примерно так же.

Понравился подраздел «Сборка мусора». Речь об управлении памятью. Под мусором подразумеваются объекты, ставшие недостижимыми из программы. Концепция достижимости для меня в новинку, как и программа-сборщик мусора. В языке C++ программист может выделять память под объекты вручную, после чего освобождение памяти тоже может производиться вручную (а может исполняться автоматически, как и в JavaScript). В JavaScript же, как я понял, выделение памяти под объекты и ее освобождение производятся автоматически.

Подраздел «Методы объекта, "this"» пришлось перечитать трижды, чтобы его смысл до меня дошел полностью. В этом подразделе первые три практических задания (из пяти) очень важны для понимания, поэтому их следует прорешать обязательно.

Как я понял, в языке JavaScript нет отдельного типа для символов, вроде char в языке C++. В языке JavaScript есть строковый тип, а тип Symbol не имеет отношения к символам. При создании переменной типа Symbol создается гарантированно уникальный идентификатор, который может использоваться в программе-скрипте для разных целей.

Мне понравилось, как в JavaScript реализовано преобразование объектов в примитивы (примитивами в JavaScript называют простые типы данных вроде числового и строкового). В языке C++, конечно, это делается сложнее, но и возможности появляются побогаче.

Банкир, Дик Фрэнсис, роман

Прекрасный роман («Банкир», 1982) одного из моих любимых писателей, Дика Фрэнсиса. Дик Фрэнсис писал (он умер в 2010 году) детективы. Его романы всегда касаются лошадиных скачек и лошадей, показывая этот мир с точки зрения людей разных профессий, потому что и сам Дик Фрэнсис вышел из этого мира (он родился в семье жокея и сам довольно долго выступал жокеем).


Герои романов Дика Фрэнсиса всегда похожи друг на друга по характеру. Это профессионалы в своем деле, благородные люди, глядящие в лицо опасности.

В этот раз героем романа стал новый сотрудник инвестиционного банка «Эктрин». Он недавно пришел на работу в банк. Так получилось, что фамилия нового сотрудника, которого зовут Тимом Эктрином, совпадает с названием банка. И это не случайность. Банк основал дед Тима, а отец Тима вместе с его матерью промотал своё огромное состояние и умер. Мать Тима спустила последние деньги в казино, мебель забрали судебные приставы. Однако, дядя Тима заметил финансовый дар мальчика и присматривал за ним, а когда Тим повзрослел, дядя заставил его поступить на работу в банк. И это окупилось, таланты Тима Эктрина проснулись и он навсегда влюбился в бизнес по производству денег.

События в книге развиваются на протяжении трех лет. Тим смог успешно замещать своего начальника во время болезни того. Это заметили и Тима с подачи его дяди включили в состав директоров банка. На этом уровне он смог принимать серьезные решения об инвестировании крупных сумм, принадлежащих банку и клиентам банка. Тим принимал довольно рискованные решения, но эти решения неожиданно для всех окупились и начали приносить банку большую прибыль. Одним из таких решений стала помощь коннозаводчику в покупке очень дорогого и знаменитого скакуна по кличке Сэнд-Кастл (по-русски «Песочный замок»).

Инвестиция была аккуратно просчитана и сработала. К Сэнд-Кастлу выстроилась очередь владельцев кобыл для спаривания. Деньги банка были удачно пристроены. Однако, через год оказалось, что множество жеребят, родившихся от Сэнд-Кастла, родились с разнообразными дефектами (кто без глаза, кто без ноги и так далее). Инвестиционный проект начал полет в пропасть. Банку грозила огромная потеря денег, а коннозаводчику — банкротство. Вскоре произошло несколько убийств и Тим начал подозревать, что в деле с Сэнд-Кастлом не всё чисто.

Параллельно истории с жеребцом в романе рассказывается об офисных интригах в банке, а также о таинственном информаторе, сливающем разные скандальные подробности внутренней жизни банка и его сотрудников желтой прессе.

В личной жизни у Тима Эктрина тоже всё не слишком радужно: он безнадежно влюблен в красавицу-жену своего коллеги. Женщина отвечает ему взаимностью, но их отношения невозможны, так как Тим дружит с этим коллегой и уважает его.