[5] 자바스크립트 – 스프레드 연산자
10408 단어 codenewbiejavascriptwebdevreact
스프레드 구문
자바스크립트 확산 연산자는 공간을 절약하고 구문을 개선하는 매우 유용한 도구가 될 수 있습니다. 아래의 첫 번째 예에서는 args 배열을 5행의 newArgs에 전달하는 데 사용하고 있습니다. 다음으로 7행과 8행에서 해당 배열을 fn 함수에 전달합니다.
fn = (x, y, z, a = 4, b = 5, c = 6) => {
console.log(x, y, z, a, b, c)
}
var args = [1, 2, 3]
var newArgs = [...args, "four", "five", "six"] // [1, 2, 3, four, five, six]
fn(...args) // 1 2 3 4 5 6
fn(...newArgs) // 1 2 3 four five six
다음 예는 약간 다릅니다. 여기에서 ...args를 매개변수로 사용하는 함수를 만들고 있습니다. 함수 내부에는 인수 목록을 반복하는 for 루프가 있습니다. 원칙적으로 필요한 만큼 많은 인수가 있을 수 있습니다. 마지막으로, 함수가 호출될 때 주어진 모든 인수(1, 2, 100 등)를 취합니다.
sumAll = (...args) => {
let sum = 0
for (let arg of args) {
sum += arg
}
console.log(sum)
}
sumAll(1) // 1
sumAll(1, 2) // 3
sumAll(1, 2, 3) // 6
다음과 같이 스프레드 연산자를 사용할 수도 있습니다.
문자열을 통한 반복.
const str = "Hello"
var letters = [...str]
console.log(letters) // [ 'H', 'e', 'l', 'l', 'o' ]
배열을 숫자(z)와 객체(w)로 나누는 것, 실제로는 다른 배열입니다. (JS 데이터 유형에 대한 추가 정보here).
var [w, ...z] = [1, 2, 3]
console.log(w, z) // 1 [2, 3]
console.log(typeof(w)) // number
console.log(Array.isArray(w)) // false
console.log(z[1]) // 3
console.log(typeof(z)) // object
console.log(Array.isArray(w)) // true
또는 객체를 반복할 수도 있습니다.
var object = {
a: 1,
b: 2,
c: 3,
*[Symbol.iterator]() {
for (let key of Object.keys(this)) {
yield this[key]
}
}
}
console.log(...object) // 1 2 3
console.log(typeof(object.a)) // number
최신 예제는 다음과 같은 방법으로도 수행할 수 있습니다. 그러나 이 경우 배열을 반환합니다.
var object = {
a: 1,
b: 2,
c: 3
}
var x = Object.values(object)
console.log(x); // [1, 2, 3]
console.log(typeof(x)) // object
Original post 24.07.20 @ create-react-app.com
사이트https://proj.create-react-app.com/
깃허브https://github.com/villivald
Reference
이 문제에 관하여([5] 자바스크립트 – 스프레드 연산자), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/villivald/5-javascript-spread-operator-2n6g텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)