es6 함수 의 rest 매개 변수 용법 실례 분석
2091 단어 es6 함수rest 매개 변수
es6 는 rest 매개 변수(형식 은...변수 이름)를 도입 하여 함수 의 불필요 한 매개 변 수 를 가 져 옵 니 다.그러면 arguments 대상 을 사용 할 필요 가 없습니다.rest 매개 변 수 는 하나의 배열 입 니 다.이 변 수 는 불필요 한 매개 변 수 를 배열 에 넣 습 니 다.
function add (...values) {
let sum = 0;
for (var val of values) {
sum += val
}
return sum
}
add(2, 3, 5) // 10
위의 코드 의 add 함 수 는 구 와 함수 로 rest 매개 변 수 를 이용 하여 이 함수 에 임의의 수의 매개 변 수 를 전달 할 수 있 습 니 다.다음은 arguments 변 수 를 대체 하 는 rest 인자 의 예 입 니 다.
// arguments
function sortNumbers() {
return Array.prototype.slice.call(arguments).sort()
}
// rest
const sortNumbers = (...numbers) => numbers.sort()
위의 코드 의 두 가지 쓰기 방법 을 비교 해 보면 rest 매개 변수의 쓰기 가 더욱 자 연 스 럽 고 간결 하 다 는 것 을 알 수 있다.arguments 대상 은 배열 이 아니 라 배열 과 유사 한 대상 입 니 다.따라서 배열 을 사용 하 는 방법 을 위해 서 는 Array.prototype.slice.call 을 사용 하여 먼저 배열 로 전환 해 야 합 니 다.rest 매개 변 수 는 이 문제 가 존재 하지 않 습 니 다.이것 은 바로 진정한 배열 입 니 다.배열 특유 의 방법 은 모두 사용 할 수 있 습 니 다.다음은 rest 매개 변 수 를 이용 하여 배열 push 방법 을 바 꾸 는 예 입 니 다.
function push(array, ...items) {
items.forEach(item => {
array.push(item)
})
}
var a = []
push(a, 1, 2, 3)
rest 매개 변수 이후 다른 매개 변수(즉 마지막 매개 변수 만 있 을 수 있 음)가 있어 서 는 안 됩 니 다.그렇지 않 으 면 오류 가 발생 할 수 있 습 니 다.
function f (a, ...b, c) {
// ..
} //
함수 의 length 속성 은 rest 인 자 를 포함 하지 않 습 니 다.
(function (a) {}).length // 1
(function (...a) {}).length // 0
(function (a, ...b) {}).length // 1
관심 있 는 친 구 는 온라인 HTML/CSS/JavaScript 코드 실행 도 구 를 사용 할 수 있 습 니 다.http://tools.jb51.net/code/HtmlJsRun상기 코드 실행 효 과 를 테스트 할 수 있 습 니 다.더 많은 자 바스 크 립 트 관련 내용 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 고 에서 말 한 것 이 여러분 의 자 바스 크 립 트 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.