- •Типы данных в es2015. Какие есть типы, какие из них примитивные, в чём разница и каковы особенности? Для каких есть литералы? Оператор typeof.
- •Тип данных Number. Его особенности, свойства, методы.
- •Тип данных String. Его особенности, свойства, методы. Строковые шаблоны.
- •Доступ к символам
- •Изменения строк
- •Смена регистра
- •Поиск подстроки
- •Отрицательные аргументы
- •Кодировка Юникод
- •Тип данных Symbol. Его особенности, свойства, методы.
- •Объявление
- •Глобальные символы
- •Использование символов
- •Приведение типов, неявное и явное. Взаимодействие типов с операторами.
- •Строковое преобразование
- •Численное преобразование
- •Специальные значения
- •Логическое преобразование
- •Встроенные модальные окна.
- •Массивы, их методы, особенности.
- •Методы pop/push, shift/unshift
- •Типизированные массивы. В чём их отличие, зачем они нужны, как с ними работать?
- •Типизированные массивы
- •Условные операторы, операторы циклов, переходы и метки.
- •Оператор вопросительный знак „?“
- •Варианты объявления функций в es2015, чем они отличаются?
- •Параметры по умолчанию
- •Оператор spread вместо arguments
- •Деструктуризация в параметрах
- •Область видимости, понятие замыкания.
- •Специальные значения this и arguments внутри функции.
- •Функции-стрелки не имеют своего this. Внутри функций-стрелок – тот же this, что и снаружи.
- •Методы и свойства функций. Как с ними работать и когда их применять?
- •Что такое каррирование, как оно работает и зачем нужно? Что такое мемоизация?
- •Работа с объектом типа Date.
- •Создание
- •Получение компонентов даты
- •Установка компонентов даты
- •Автоисправление даты
- •Преобразование к числу, разность дат
- •Форматирование и вывод дат
- •Метод Date.Now()
- •Объект как хеш-таблица.
- •Конфигурируемые свойства объекта.
- •Атрибуты свойств
- •Дескрипторы свойств
- •Перечислимые свойства объекта
- •Иммутабельность объектов. Копирование объектов. Что такое иммутабельность?
- •Копирование по ссылке
- •Особенности системы наследования объектов.
- •Наследование свойств
- •Наследование "методов"
- •Объектно-ориентированное программирование, принципы, парадигмы.
- •Псевдо-классовое наследование в es5 и es2015. Как организуется, на чём базируется, что изменилось в es2015.
- •Функциональное наследование.
- •Встроенные коллекции в es2015.
- •Обработка исключений. Принципы работы и когда следует использовать.
- •Таймеры и периодические вызовы.
- •Отмена исполнения clearTimeout
- •Цикл событий, принципы работы асинхронности.
- •Промисы (promise), назначение и особенности работы. Использование async/await.
- •Пример с setTimeout
- •Параллельное выполнение
- •Как мы будем их использовать?
- •Генераторы (generators). В чём заключаются, как работают, когда могут применяться?
- •Создание генератора
- •Генератор – итератор
- •Yield – дорога в обе стороны
- •Асинхронный код
- •Синтаксис диалекта регулярных выражений, доступный в es2015. Метасимволы, группировки, обратные ссылки, квантификаторы, символьный класс и выбор, позиционные проверки.
- •Использование регулярных выражений в конструкциях языка. Методы и свойства объекта регулярных выражений, методы строк, результаты операций.
Типы данных в es2015. Какие есть типы, какие из них примитивные, в чём разница и каковы особенности? Для каких есть литералы? Оператор typeof.
В JavaScript есть 6 «примитивных» типов: number, string, boolean, symbol, null, undefined и 7-й тип – объекты object.
Число «number»
Тип number используется как для целых, так и для дробных чисел. Существуют специальные числовые значения Infinity (бесконечность) и NaN (ошибка вычислений). Эти значения формально принадлежат типу «число», хотя, конечно, числами в их обычном понимании не являются.
Строка «string»
В JavaScript одинарные и двойные кавычки равноправны. Можно использовать или те или другие. Тип char (символ) не существует, есть только string.
Булевый (логический) тип «boolean»
У него всего два значения: true (истина) и false (ложь). Как правило, такой тип используется для хранения значения типа да/нет.
Ложные значения: false, null, undefined, '', 0, NaN.
Все остальные — истина.
Тип данных «symbol»
Symbol служит для создания уникальных идентификаторов.
Специальное значение «null»
Значение null не относится ни к одному из типов выше, а образует свой отдельный тип, состоящий из единственного значения null. В JavaScript null не является «ссылкой на несуществующий объект» или «нулевым указателем», как в некоторых других языках. Это просто специальное значение, которое имеет смысл «ничего» или «значение неизвестно».
Специальное значение «undefined»
Значение undefined, как и null, образует свой собственный тип, состоящий из одного этого значения. Оно имеет смысл «значение не присвоено». Если переменная объявлена, но в неё ничего не записано, то её значение как раз и есть undefined.
Объекты «object»
Первые 6 типов называют «примитивными». Отдельно стоит седьмой тип: «объекты». Он используется для коллекций данных и для объявления более сложных сущностей.
Объявляются объекты при помощи фигурных скобок.
Оператор «typeof»
Оператор typeof возвращает тип аргумента. Результатом typeof является строка, содержащая тип:
typeof undefined; //"undefined"
typeof 0; //"number"
typeof true; //"boolean"
typeof "off"; //"string"
typeof {}; //"object"
let sym = Symbol();
typeof sym; //symbol
typeof null; //"object"
typeof function() {} //"function"
В последних двух строках typeof ведет себя по-особому:
Результат typeof null == "object" – это официально признанная ошибка в языке, которая сохраняется для совместимости. На самом деле null – это не объект, а отдельный тип данных.
Функции не являются отдельным базовым типом в JavaScript, а подвидом объектов. Но typeof выделяет функции отдельно, возвращая для них "function". На практике это весьма удобно, так как позволяет легко определить функцию.
Литералы:
Численный — 123
Строковый — '', "", ``
Объекта — {}
Массива — []
Функции — function() {}, () => {}
Регулярного выражения — /^.*$/gim
