JavaScript

Проработать

  1. Roadmap
  2. Замыкания в JavaScript
  3. closure
  4. Замыкания
  5. Онлайн обучение Java-Script
  6. Блочные и строчные элементы
  7. Введение в Angular

Что это

JS - однопоточный язык программирования.

Менеджер пакетов

Типы данных

Виды переменных

Замыкание(closure)

Простыми словами это внутренняя функция, т.е. функция в функции. Замыканием (closure) называют потому, что после выполнения родительской или внешней функции, код внутренней все еще "живет" в интерпретаторе, и его можно выполнить. Ошибок не возникнет даже если внутренняя функция (замыкание) будет использовать переменные из внешней функции.

function makeWorker() {
  let name = "Pete";

  return function() {
    alert(name);
  };
}

let name = "John";

// create a function
let work = makeWorker();
    

Лексической области видимости (lexical scoping)

Lexical scoping - это видимость переменных из внутренего метода во внешний.

Сравнение объектов

null == undefined - true

null == 0 - false

По этому рекомендуется использовать сравнения 3 знаков === или !==

Для практики кода, можно использовать вывод в консоль браузера.
console.log()

Можно использовать && и || как проверку на значение(0 или "" или NaN или null - вернет false все остальное это true)
console.log(1 || 2) //1
console.log(1 && 2) //2

Методы вывода информации в браузере

Выведет переданное сообщение в окне alert(?message);

Выведет переданный вопрос, и кнопки ok cancel и вернет boolean ответ confirm(?message);

Выведет переданное сообщение и вернет заполненное поле prompt(?message, ?defaultValue);

Объекты для преобразования типов.

Number()
String()
Boolean()
    

Мат функции

Math.min(2,4)
Math.max(2,4)
    

if

if(условие) {
    тело(блок)
} else if  (условие) {
    тело(блок)
} else if (условие) {
    тело(блок)
} else {
    тело(блок)
}
        

Циклы

while

while(условие) {
    тело(блок)
}
        

do while

do {
    тело(блок)
} while (условие)
        

Объект

Создание

let user = {
    name:'a',
    surname:'b',
    patronymic:'c'
}
    

Получение поля

user.name
или
user['name']
    

Typeof

typeof - метод получения типа.

typeof user
        

Оператор ...

... - предоставляет 2 возможности

Оператор расширения

Оператор расширения - «разбивает» объект на набор его элементов и отдаёт их по порядку.

arr = [1, 2, 3]
console.log(...problems)
        

Можно объединять массивы

[ ...arr, ...left, ...right ]
        

Остаточные параметры

В параметрах функции можно указать получение нескольких параметров.

function s(...args) {}
        

Object

  1. Object.keys(obj) – возвращает массив ключей.
  2. Object.values(obj) – возвращает массив значений.
  3. Object.entries(obj) – возвращает массив пар [ключ, значение].

Await

await - ключевое слово которым помечают вызовы кода для ожидания завершения Promise. Могут использоваться только в функциях с ключевым словом async.

Вопросы на собеседование