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

Массивы

Массив — это специализированный объект в Javascript. В большинстве случаев, когда вы видите «список», вам следует рассмотреть возможность хранения ваших данных в массиве.

пример массива.

const exArr = [‘h’,’e’,’l’,’l’,’o’]

Метод

пример метода массива

myArray.concat()
myArray.length
myArray.pop()
myArray.push()
myArray.slice()
myArray.splice()
myArray.split()
myArray.shift()
myArray.unshift()
myArray.forEach()
myArray.includes()

https://www.w3schools.com/Jsref/jsref_obj_array.asp

Разница между: function Person(){}, var person = Person() и var person = new Person()?

функция Person() {}

Объявление функции
Приведенный выше код объявляет оператор функции (операторы выполняют действие), но не выполняется, однако регистрируется в глобальном пространстве имен.

var person = Person()

Выражение функции
Переменная var person была определена и содержит ссылку на значение функции Person. Любые выражения JavaScript (включая выражения функций) всегда возвращают значение. Это также может быть анонимной функцией, если для функции не было назначено имя, но оно заключено в круглые скобки, чтобы интерпретироваться как выражение.

var person = new Person()

Конструктор функций
Добавив ключевое слово «новый». Мы создаем новый объект конструктора класса Person. Объявление функции — это просто обычная функция, если только она не была создана, тогда она становится конструктором класса.

В чем разница между «атрибутом» и «свойством»?

  1. Атрибут – это качество или объект, который мы приписываем кому-то или чему-то. Например, скипетр – это атрибут власти и государственности.
  2. Собственность — это качество, которое существует без указания авторства. Например, глина обладает клейкими свойствами; или одним из свойств металлов является электропроводность. Свойства проявляют себя через физические явления без необходимости приписывать их кому-то или чему-то. Точно так же утверждение о том, что кто-то обладает мужскими качествами, самоочевидно. По сути, можно сказать, что недвижимость принадлежит кому-то или чему-то.

Атрибут — это статический атрибут данного узла DOM, например, свойство — это вычисляемое свойство объекта узла DOM. Примером свойства может быть checked состояние флажка, value или поле ввода. Как если бы атрибут был бы href тега привязки или type входного DOM.

<a href="https://google.com" id="hello">Hello World</a>
<input type="checkbox" id="foo" checked>
<input type="text" id="bar" value="cheesecake">

Какие языковые конструкции вы используете для перебора свойств объекта и элементов массива?

В этом посте объясняются три подхода к извлечению информации из массивов и объектов:

  1. для петель,
  2. методы массива (любезно предоставлены ECMAScript 5 [1]),
  3. перечисление ключей свойств.

https://2ality.com/2011/04/iterating-over-arrays-and-objects-in.html

Что такое цикл событий? В чем разница между стеком вызовов и очередью задач?

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

Очередь задач (микроочередь задач) — это очередь сообщений среды выполнения JavaScript, которая обрабатывает задачи, выделенные различными веб-API. Эта очередь предназначена для обработки обратных вызовов Web Apis. Сообщение обрабатывается после очистки стека вызовов.

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

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

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

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

Куда он посылает операцию? очередь событий. Следовательно, у нас есть циклическая система для запуска асинхронных операций в JavaScript. Сам язык является однопоточным, но API-интерфейсы браузера действуют как отдельные потоки.

Цикл событий облегчает этот процесс; он постоянно проверяет, пуст ли стек вызовов. Если он пуст, новые функции добавляются из очереди событий. Если это не так, то обрабатывается текущий вызов функции.

В чем разница между классом ES6 и конструкторами функций ES5?

это просто более удобная запись для обычной функции-конструктора. Внутри это та же прототипная объектная модель.

Тем не менее, вы получаете несколько преимуществ от использования классов: объявления классов не поднимаются; как и в случае с другими специфическими функциями ES6 (такими как let или const), правильная лексическая область видимости сохраняется. Классы ES6 (а не их объекты) также дают вам отражающее свойство name.