Синтаксис распространения — это новое дополнение к набору операторов в JavaScript ES6. Он принимает итерируемый объект (например, массив) и расширяет его до отдельных элементов.
Синтаксис распространения обычно используется для создания поверхностных копий объектов JS. Использование этого оператора делает код кратким и повышает его читабельность.
Синтаксис расширения обозначается тремя точками, …
.
1 2 3 |
пусть массив = [... значение] |
Поскольку структура данных массива широко используется, она будет рассматриваться во всех последующих примерах.
В него скопированы array2
элементы . array1
Любые изменения, внесенные в array1
не будут отражены в array2
и наоборот.
Если бы использовался простой оператор присваивания, ему была array2
бы присвоена ссылка, array1
и изменения, сделанные в одном массиве, отразились бы в другом массиве, что в большинстве случаев нежелательно.
1 2 3 4 5 6 |
пусть array1 = ['h', 'e', 'l', 'l', 'o']; пусть массив2 = [...массив1]; console.log(массив2); ['h', 'e', 'l', 'l', 'o'] // вывод |
Можно видеть, что синтаксис расширения можно использовать для добавления одного массива после любого элемента второго массива. Другими словами, нет ограничения, которое desserts
может быть добавлено только в начале конца desserts1
массива.
1 2 3 4 5 6 7 8 9 10 11 |
пусть десерты = ['торт', 'печенье', 'пончик']; letdesserts1 = ['мороженое', 'флан', 'замороженный йогурт', ...десерты]; console.log(десерты); // Добавление Baked_desserts после флана letdesserts2 = ['мороженое', 'флан', ...десерты, 'замороженный йогурт']; console.log(десерты2); // вывод ['торт', 'печенье', 'пончик'] ['мороженое', 'флан', 'торт', 'печенье', 'пончик', 'замороженный йогурт'] |
1 2 3 4 5 6 7 |
функция умножить (число1, число2, число3) { console.log (число1 * число2 * число3); } пусть числа = [1,2,3]; умножить (... числа); |
Вместо того, чтобы передавать каждый элемент, например numbers[0]
, numbers[1]
и т. д., синтаксис расширения позволяет передавать элементы массива в качестве отдельных аргументов.
1 2 3 4 5 |
//Передача элементов массива в качестве аргументов математическому объекту let numbers = [1,2,300,-1,0,-100]; console.log(Math.min(...числа)); |
Объект Math
Javascript не принимает один массив в качестве аргумента, но с синтаксисом расширения массив расширяется до нескольких аргументов всего одной строкой кода.
Надеемся, что было познавательно!
Источник статьи: https://medium.com/