Литералы объектов
Сокращённая запись свойств
ES6 позволяет записывать свойства объекта непосредственно как переменные; имя свойства — это имя переменной, а значение свойства — это значение переменной.
Имена методов также можно сокращать
Если это функция-генератор, добавьте звёздочку впереди:
Выражения в именах свойств
ES6 позволяет использовать выражения в качестве имён свойств, но выражение должно быть заключено в квадратные скобки.
Примечание: сокращённую запись свойств и выражения в именах свойств нельзя использовать одновременно, иначе будет выброшена ошибка.
Оператор расширения объектов
Оператор расширения (...) используется для извлечения всех перечисляемых свойств объекта-параметра и копирования их в текущий объект.
Базовое использование
Можно использовать для объединения двух объектов
Примечания
Когда пользовательские свойства имеют то же имя, что и свойства в объекте оператора spread:Если пользовательское свойство идёт после оператора spread, свойство с тем же именем внутри объекта оператора spread будет перезаписано.
Если пользовательское свойство идёт перед оператором spread, оно задаёт значения свойств по умолчанию для нового объекта.
Если после оператора расширения следует пустой объект, это не имеет эффекта и не выбрасывает ошибку.
Если после оператора расширения следует null или undefined, это не имеет эффекта и не выбрасывает ошибку.
Новые методы для объектов
Object.assign(target, source_1, ···)
Используется для копирования всех перечисляемых свойств исходных объектов в целевой объект.
Базовое использование
- Если целевой объект и исходный объект имеют свойство с одинаковым именем, или несколько исходных объектов имеют свойство с одинаковым именем, более позднее свойство перезапишет более раннее.
- Если функция имеет только один параметр, когда параметр является объектом, она возвращает объект напрямую; когда параметр не является объектом, она сначала преобразует параметр в объект, а затем возвращает его.
Поскольку null и undefined не могут быть преобразованы в объекты, возникает ошибка:
Примечания
копирование свойств assign — это поверхностное копирование:
Замена свойств с одинаковыми именами
Обработка массивов
Он рассматривает массивы как объекты, поэтому [2,3] сначала преобразуется в {0:2,1:3}, а затем выполняется копирование свойств, так что свойство 0 исходного объекта перезаписывает свойство 0 целевого объекта.
Object.is(value1, value2)
Используется для сравнения, строго ли равны два значения, по сути аналогично (===).
Базовое использование
Базовое использование
Отличия от (===)