Рубрики
Без рубрики

Книжный клуб: красноречивый JavaScript – Глава 1

Как я использовал плохой опыт собеседования, чтобы переучить основы JavaScript .. С тегом книг, JavaScript, WebDev, новичков.

Недавно я провел техническое собеседование, которое было на передовой должности. Это было для компании, которая специализировалась на технологиях кибербезопасности, но они искали разработчиков React, чтобы создать лучшие информационные панели пользовательского интерфейса для клиентов.

Я ожидал, что интервью задает некоторые вопросы алгоритма, возможно, поговорит о некоторых структурах или оптимизации данных JavaScript. Вместо этого я был озадачен вопросами, которые я получил. Что такое прототипическое наследство? Можете ли вы объяснить, в основном, какие обещания? Каковы некоторые различия между объявлением функции и выражением функции ?

Моя первая мысль сразу была, как Простой Должна ли их база кода?! Я думал, что компания ищет React Devs! Теперь я вижу, что они искали компетентных инженеров -фронтальных инженеров, а не людей, которые могут быстро раскрутить следующее приложение и хвастаться тем, как они понимают статическое поколение. Они хотели инженеров, которые освоили основы. Эти основы могут помочь решить любую сложную ошибку в экосистеме JS. Это красота быть мастером языка.

Каждое сообщение об ошибке в любой структуре – это только потому, что что -то шли о том, как работает JavaScript. Однако JavaScript сложный. Так как же работает JavaScript?

Интервью прошло не так хорошо.

Я понял, что у меня есть хорошая суть того, что происходит с JavaScript, но я изо всех сил пытался объяснить основы просто потому, что никогда не смотрел внутри JavaScript двигатель Анкет Это было фантастический урок; Я не хотел чувствовать себя обиженным или расстраиваться из -за того, как мало я знаю. Вместо этого я использую опыт как способ учиться. Я хочу иметь возможность ответить на эти вопросы. Мне всегда нравилось смотреть под капюшоном; Теперь пришло время Серьезно Сосредоточьтесь на моем направлении на языке, который начал мою карьеру.

Я хочу начать книжный клуб. Для меня. Потенциально для вас, читатель. Я искал онлайн (и мой пыльный книжный шкаф) для актуального, известного учебника вокруг JavaScript. Я решил начать с Красноречивая JavaScript , высоко ценится как отличный текст JavaScript. Кроме того, я просмотрел это раньше, и у автора Мария Хавербеке отличный голос.

Я немного нервничал, чтобы начать, потому что на данный момент это может быть слишком простым. Начиная с разделов, которые объясняют, что за строка быстро потеряет мой интерес. Однако в это время написания я приятно удивлен тем, что я читал до сих пор.

Этот пост будет посвящен первой главе. Серия будет сосредоточена на моих заметках и наблюдениях. Это будет вокруг контента, которого я не знал о JavaScript. Я настоятельно рекомендую вам прочитать книгу самостоятельно. Он бесплатно, доступен для большинства устройств и, возможно, охватывает все, что вам нужно знать, чтобы начать работу с языком и программированием в целом.

Глава Один

Под поверхностью машины программа движется. Без усилий это расширяется и контракты. В большой гармонии электроны разбросаны и перегруппируются. Формы на мониторе – это всего лишь рябь на воде. Суть остается невидимой ниже.

  • Мастер Юань-ма, Книга программирования

Числа и память

Работа с типами в JavaScript стоит память. Если вам нужно хранить значения в переменной (или привязки , как их называет автор), переменные должны занимать пространство на вашем компьютере. В типичных современных компьютерах у нас более 30 миллиардов битов в летучих рабочей памяти (например, ОЗУ). Нелетущее хранилище, как SSD или жесткие диски, имеют гораздо больше.

Тип номера JavaScript имеет фиксированный номер для битов. 64 бита для хранения одного значения номера. Это увлекательно, потому что, на первый взгляд, это не так много. Когда вы начинаете понимать биты, вы понимаете, что это означает, что у нас есть вокруг 2^64 (2 к мощности 64) Потенциальные числа. Это равняется приблизительно 18 вариантам квинтиллиона.

Это много. Проблемы обычно возникают при работе с огромными числами. Давайте поговорим обо всех зернах песка на нашей земле. Если бы мы сохранили это значение в переменной, у нас все равно осталось бы около десяти кусочков квинтиллиона, чтобы сделать все, что мы хотим.

Некоторые предостережения включают отрицательные числа, которые используют дополнительный бит для обозначения - Знаки и не-хольные номера, как поплавки. Если мы рассмотрим все это, у нас все равно будет 9 триллионов комбинаций для целых чисел. К сожалению, недостаточно для хранения всех песчаных зерен …

Операторы и типы

У нас есть у нас есть унарочные операторы, а не просто бинарные операторы. Бинарный оператор будет чем -то вроде 5 + 3 , где плюс символ берет два значения. Единый оператор берет одно значение; Отсюда и название. тип это унаговый оператор, который возвращает тип значения.

Есть только один тройной оператор, называемый условным оператором. Вы, возможно, видели это раньше: истинный ? 1: 2 Анкет

NULL и неопределенное являются особыми типами. Автор говорит, что они используются взаимозаменяемо и более или менее одинаковы. Я не могу полностью согласиться, как я вижу неопределенное как значения, которые могут существовать позже, хотя нуль символизирует отсутствие значения. Вместо этого я бы придерживался просто использования Undefined, если смогу, но всегда лучше защищать ваши типы, где это возможно. Автор также упомянул, что:

Разница в значении между неопределенным и нулевым является несчастным случаем дизайна JavaScript, и это не имеет значения большую часть времени.

Немного изучая, я нашел эту цитату на переполнении стека Пост Объясняя немного больше об аварии.

Цитата из книги Professional JS для веб -разработчиков (WROX): «Вы можете задаться вопросом, почему оператор TypeOF возвращает« объект »для нулевого значения. Это была на самом деле ошибка в исходной реализации JavaScript, которая была затем скопирована в Ecmascript. Сегодня рационализируется, что NULL считается заполнителем для объекта, хотя технически это примитивная ценность ».

  • Капитан разумный (отличное имя)

В JavaScript у нас также есть автоматическое преобразование типа:

console.log(8 * null);
// → 0 (null is converted to 0)
console.log('5' - 1);
// → 4 ('5' becomes 5)
console.log('5' + 1);
// → 51 (1 becomes '1')
console.log('five' * 2);
// → NaN (can't use *, /, or - on strings)
console.log(false == 0);
// → true (false becomes 0)

Приятный совет – если вы когда -нибудь окажетесь с НАН Ошибки имейте в виду, что дальнейшие арифметические операции на НАН Продолжайте производить НАН , так что посмотрите, где вы можете делать какие -либо случайные преобразования типа.

Также лучше всего использовать строгий равный оператор === как это позволяет вам точно Проверьте на равные значения и избегает автоматического преобразования типа.

Конец главы 1

Вот и все! Когда я попаду в точку написания этих резюме главы, я надеюсь, что также научусь связывать свои заметки. В настоящее время это немного повсюду. Я надеюсь, что вы, возможно, выучили хотя бы одну вещь. Если здесь что -то сбивает с толку, пожалуйста, дайте мне знать, и я могу попытаться объяснить дальше. В противном случае вы можете проверить первую главу на веб -сайте автора Здесь Анкет

Вы читали главу? Книга? Дайте мне знать свои мысли в комментариях, и если вы думаете, что это отличная книга, чтобы действительно овладеть основными принципами в JavaScript.

Следующая глава посвящена Структура программы Анкет Мы только что узнали о гвоздях; Давайте мастер размахивает молотком.

Первоначально опубликовано на моем личном веб -сайте, который можно найти в alex.kharo.uk .

Оригинал: “https://dev.to/kharouk/book-club-eloquent-javascript-chapter-one-5c0d”