Алекс Борсбах

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

Сегодня я узнал, что str.replace(/[^A-Za-z0–9\s]/g, "") заменит все символы, которые не представляют собой слово, и будет "превращено" в "пустой" пробел.

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

function Person() {} объявляет оператор функции, который зарегистрирован в глобальном пространстве имен, но не выполняется.

var person = Person() объявляет переменную «Person» и содержит ссылку на значение для функции «Person».

var person = new Person() добавляя «new», мы создаем экземпляр нового объекта в конструкторе класса Person.

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

Атрибут очень похож на свойство, но он находится в HTML. Свойство находится в DOM, и рекомендуется работать со свойством, когда это возможно.

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

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

5. Что такое цикл событий?

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

6. В чем разница между стеком вызовов и очередью задач?

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

Очередь задач (или очереди, их может быть больше одной) — это структура данных ядра (т. е. недоступная для процесса и не являющаяся частью его виртуальной памяти), которая объединяет записи процессов, ожидающих использования процессора. Может быть отдельная очередь для каждого процессора для многопроцессорных систем и/или отдельная очередь для каждого уровня приоритета в соответствии с дизайном планировщика. Это очередь, потому что записи обычно размещаются на одном конце и удаляются с другого, хотя иногда их порядок можно изменить, если так решит планировщик.

7. Каковы различия между конструкторами класса ES6 и конструкторами функций ES5?

В ES5 вам пришлось бы создать такую ​​функцию, как:

function myClass() {
    console.log('constructor');
}

myClass.prototype.doSomething = function() {
    return 'Something';
}

Теперь в ES6 вы можете сразу определить класс вместо функции с меньшим количеством ввода. Примером может быть:

class myClass {
    constructor() {
        console.log('constructor');
    }
    doSomething() {
        return 'Something';
    }
}