Массив.at
Метод массива `at` может возвращать элемент в любой позиции.
const a = [1,2,3,4,5]
Раньше, чтобы найти последний элемент массива, мы делали:
a[a.length -1] ---> 5
Вместо этого мы можем использовать at
a.at[-1] ---> 5 a.at[-2] ---> second last element 4
структурированный клон
Javascript structuredClone
используется для глубокого копирования объекта.
const a = { name: "Edwin", weapons: { main: "sword", alt: "knife"} } const b = structuredClone(a) //It creates a new object and doesn't have old reference. b.weapons.main = "Rifle"; console.log(b) ---> { name: "Edwin", weapons: { main: "Rifle", alt: "knife"} } console.log(a) ---> { name: "Edwin", weapons: { main: "sword", alt: "knife"} }
structuredClone и оператор спреда
const a = { name: "Edwin", weapons: { main: "sword", alt: "knife"} } const b = {...a} //It creates a shallow copy. Inner objects have the same refernence. b.weapons.main = "Rifle"; console.log(b) ---> { name: "Edwin", weapons: { main: "Rifle", alt: "knife"} } console.log(a) ---> { name: "Edwin", weapons: { main: "Rifle", alt: "knife"} //Here the both object a and b changes when using spread operator.
Следовательно, использование `spread` может иногда вызывать ошибки, и давайте соответственно изменим `structedClone`.
Примечание. Глубокое копирование всегда выполняется медленнее поверхностного копирования.