[JS] 나머지 매개변수, 전개 구문 배열

subbni·2022년 1월 25일
0

arguments

  • 함수로 넘어 온 모든 인수에 접근
  • 함수내에서 이용 가능한 지역 변수
  • length / index 사용 가능
  • Array 형태의 객체
  • 배열의 내장 메서드 없음 (forEach, map등 사용 불가능)
function showName (name) {
	console.log(arguments.length);
    console.log(arguments[0]);
    }
    
showName('Mike','Tom');

> 2
> 'Mike'

나머지 매개변수

function showName (...names) {
	console.log(names);
    }
    
    showName(); 
    showName('Mike'); 
    showName('Mike','Tom'); 
    
> []
> ['Mike']
> ['Mike','Tom']

나머지 매개변수는 argument이름 앞에 ...을 붙이면 사용 가능하다.

이 때, 매개변수로 넘어오는 모든 값들이 배열로 넘어오게 되며,
forEach문을 비롯한 함수들을 사용 가능하다.

function add(...numbers) {
let result = 0;
numbers.forEach( (prev) => {
	return result += prev;
    }
console.log(result);
)
}

add(1,2,3,4,5);

> 15

function User(name, age, ...skills) {
this.name = name;
this.age= age;
this.skills = skills;
}

const user1 = new User("Mike", 30, "html", "css");
const user2 = new User("Jane", 20, "html", "css","Javascript");

console.log(user2);

> User { name:"Jane", age: 20, skills:  Array(3)}

전개 구문 배열

let arr1 = [1,2,3];
let arr2 = [4,5,6];

let result = [0, ...arr1, ...arr2, 7,8,9];

console.log(result);

> [0,1,2,3,4,5,6,7,8,9]

배열은 물론 객체에도 적용 가능하다.

전개 구문 : 복제

let user1 = {name:'Mike', age: 30};
let user2 = {...user};
->  단순 복제 됨

user2.name = 'Tom';

console.log(user1.name);
console.log(user2.name);

> 'Mike'
> 'Tom'
profile
개발콩나물

0개의 댓글