JS 2015 Flashcards
(8 cards)
let
1) Область видимости блок { }
2) Запрещено повторное объявление переменной в
этом же блоке
3) В цикле for каждой итерации соответствует своя независимая переменная в блоке цикла
const
Задает константу, то есть переменную, которую нельзя менять. Если объявлен объект, то свойства могут быть изменены, но сам в целом объект нет.
Деструктуризация объектов и массивов
Позволяет разбивать объект или массив на переменные при присвоении. Может быть использовано значение по-умолчанию. Для объектов возможно задавать имена, отличные от свойств объекта. Для массивов важен порядок следования и оператор spread три точки для значений не попавших в определения. Поддерживается вложенность.
Функции
1) значения по умолчанию и деструктуризацию для параметров
2) оператор spread получает оставшиеся параметры в массив
3) spread можно передать в функцию список аргументов вместо массива (аналог apply)
4) у функции есть имя (или имя свойства или переменной)
5) объявление function declaration в блоке видно только в этом блоке
6) функции-стрелки:
- возвращают результат если одна строка
- с фигурными скобками нужен явный return
- не имеют своего контекста (this) и arguments и берут их из окружающего контекста
- не могут быть использованы как конструкторы, для new
Строки
Новый вид кавычек позволяющий делать перенос строк. В них могут быть встроены выражения интерполяции ${…}
Добавились четыре функции для работы со строками
repeat() - повтор подстроки
includes() - поиск подстроки в середине
startsWith() - в начале
endsWith() - в конце
Объекты
Короткое свойство позволяет взять значение из одноименной переменной. Свойство в объекте может быть назначена вычисляемым выражением в квадратных скобках.
Object.assign получает список объектов и копирует их все свойства в первый target объект.
Object.is проверка равенства значений, в принципе то же что и ===
Коротка форма записи методов объекта
Свойство super берет метод из прототипа родителя. Может использоваться только в короткой форме записи метода-свойства, так как имеет [[HomeObject]]
Классы
Новый объект class. Сочетает в себе конструктор и прототип. Область видимости текущий блок и ниже объявления. Все методы класса неперечислимые (не видны в for..in). Можно задавать классы анонимно, инлайн, присваивая переменным и передавать как параметры функции. Геттеры, сеттеры, вычисляемые названия методов.
Классы #2
“static” - статическими свойства класса, доступные в нем через точку. Используется для фабричных методов.