- Default 파라미터
파라미터 자리가 비어있을때 발동
function sum(a, b=2*a) {
return a + b;
}
sum(1)
sum(1,3)
- Arguments
입력받은 모든 파라미터를 Array와 유사한 배열안에 넣은 변수
function sum(a,b,c) {
console.log(arguments);
}
sum(1,2,3);
단점: 파라미터를 추가하거나 삭제할때 복잡
해결방안
- REST 파라미터
입력받은 모든 파라미터를 Array에 넣은 변수
주의점 : 파라미터에 가장 뒤에 써야함, 한번만 사용 가능
function sum(a,b,...parameters) {
console.log(parameters);
}
sum(1,2,3,4,5);
...rest 와 ...spread 차이점
1. 파라미터에 존재하는 ... 은 ...rest 파라미터
2. 외 모든 ... 은 ...spread operator
- ...spread를 활용한 데이터마이닝(카운트세기)
function countWord(word) {
const countArr = {};
console.log([...word]);
[...word].forEach(function(index) {
if (countArr[index] > 0) {
countArr[index] += 1;
} else {
countArr[index] = 1;
}
})
console.log(countArr);
}
countWord('aacbbb');
- Primitive Data Type
문자와 숫자가 해당되며 변수에 값이 그대로 저장
var name1 = 'kim';
var name2 = name1;
name1 = 'park';
console.log(name1,name2);
- Reference Data Type
Array와 Object가 해당되며 변수에 값이 저장이 안되며 reference(pc 메모리 위치)가 저장
var name1 = { name : 'kim' };
var name2 = name1;
name1.name = 'park'
console.log(name1.name,name2.name);
![](https://velog.velcdn.com/images/mj9457/post/4eb8e1d9-403f-42f5-996a-989fec8ed238/image.png)
예시
1.
var name1 = { name : 'kim' };
function reName(name) {
name = { name : 'park' }
}
reName(name1);
2.
var name1 = { name : 'kim' }
var name2 = { name : 'kim' }
name1 === name2 ? true : false;
![](https://velog.velcdn.com/images/mj9457/post/55c23cc5-b7b6-45f2-87bf-26024d2d6543/image.png)