1. Опишите одну вещь, которую вы узнали сегодня на уроке.

Я узнал, что такое переменная и типы данных.

В JavaScript переменная — это место, где могут храниться значения, чтобы мы могли сравнивать, изменять, ссылаться и/или возвращать их позже в нашей программе. Эти «места» называются переменными. Мне нравится думать о них как о ведрах, в которых хранятся данные. Когда мы программируем, мы просто сравниваем биты данных и манипулируем ими во многих других блоках данных. В JS у нас есть три разных ключевых слова для объявления переменной. Ключевые слова: var, const и let. Мы можем назвать переменную как угодно, если она объявлена с ключевым словом var.

Когда дело доходит до типов данных, это просто означает, что данные могут иметь разные типы. Так же, как транспортные средства бывают разных типов: седан, грузовик, мотоцикл. Вот и все, что это значит.

Таким образом, всего 7 типов данных в JavaScript.

Примитивные (или самые основные) типы данных:

логическое значениеtrue или false. Логическое значение может быть только одним из этих двух значений. Как свет. Это включено или выключено, правда или ложь? 0 или 1. Звучит знакомо?

Не определеноundefined — это именно то, что написано. Но загвоздка в том, что мы, как программисты, не можем его использовать. Он зарезервирован только для компьютера. Это значение по умолчанию в JavaScript. Причина этого в том, что компьютер может дать нам обратную связь, когда у нас есть ошибочный код. Проще говоря, не назначайте undefined. В ближайшие месяцы компьютер сделает это за вас.

Null – значение null можно использовать. Это точно так же, как undefined, но зарезервировано для назначения людьми, а не компьютером.

Число1, 3, 4.4, 42, 1.75, как целые числа, так и числа с плавающей запятой (десятичные) относятся к типу Число.

NaN, который технически не является примитивным типом данных. NaN или Не число — одна из самых странных особенностей JavaScript. А пока поместите его в ту же категорию, что и undefined. Это для компьютера, а не для вас.

Это полезно для отладки. Если вы видите NaN в своем коде, это, вероятно, признак того, что вы пытаетесь выполнить арифметические действия с чем-то нечисловым, например со строкой.

Причина, по которой вы увидите NaN, заключается в том, что вы пытаетесь выполнить арифметические действия с фрагментом данных, отличным от Числа, а JS пытается преобразовать эти логические значения или строки в числа. Если это невозможно, вы получите либо ошибку, либо NaN (это зависит от контекста). Мы поговорим об этом позже.

Строка'hello world', '...', "Sam I Am", "256" являются примерами строк. Слова и символы между одинарными, '' или двойными кавычками'' считаются строками. Обратите внимание, что между кавычками стоит число — в данном контексте это строка.

2. Какие инструменты и методы вы используете для отладки кода JavaScript?

Откажитесь от отладки console.log раз и навсегда! Каждый должен научиться использовать точки останова для отладки кода в инструментах разработчика Chrome. Просто открыв DevTools и просмотрев свой JS-код в Chrome, вы можете легко увидеть, что у вас есть. Вернитесь к демонстрации и откройте DevTools, нажав Command+Option+I (Mac) или Control+Shift+I ( Виндовс, Линукс).

Ссылка: 1) https://codeburst.io/learn-how-to-debug-javascript-with-chrome-devtools-9514c58479db

2) https://medium.com/@interdigitizer/5-debugging-tools-every-javascript-programmer-should-know-and-use-38575141689c

3. В чем разница между переменными, созданными с помощью let, var или const?

вар:

С «var» есть только два типа области видимости для переменной. Существует глобальная область видимости, в которую мы поместим переменную, если определим переменную с «var» вне какой-либо функции. И затем есть область действия для переменной, определенной внутри функции. Но нет блочной области, и это является источником путаницы и случайных ошибок.

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

позволить:

let позволяет нам определять переменные. Ранее мы объявляли наши переменные, используя ключевое слово «var». Но у него есть некоторые ограничения, когда дело доходит до области действия, поскольку он не предлагает область действия блока. Но теперь, используя ключевое слово «let», мы можем объявить действительно переменные с областью действия блока.

Повторное объявление одной и той же переменной в пределах одной и той же функции или блока вызывает TypeError.

В ECMAScript 6 let поднимет переменную в начало блока. Однако обращение к переменной в блоке перед объявлением переменной приводит к ошибке ReferenceError. Переменная находится во временной мертвой зоне с начала блока до обработки объявления.

константа:

Мы будем использовать ключевое слово «const» для создания и инициализации переменной только для чтения, которая будет содержать постоянное значение и что-то, что мы никогда не сможем изменить. В ES6 «const» будет иметь блочную область видимости, как и ключевое слово «let». Значение константы не может измениться путем переназначения и не может быть повторно объявлено. Константа не может делиться своим именем с функцией или переменной в той же области.

Лично мне нравится определение MDN для const:

Объявление const создает доступную только для чтения ссылку на значение. Это не означает, что значение, которое он содержит, является неизменным, просто идентификатор переменной нельзя переназначить.

Ссылка: 1) https://medium.com/infancyit/difference-between-var-let-and-const-in-es6-16a08d74b8b2

2) https://dev.to/sarah_chima/var-let-and-const--whats-the-difference-69e