JAVASCRIPT - 중급 6편

MJ·2022년 12월 9일
0

JAVASCRIPT 정리

목록 보기
16/22
post-thumbnail

* 함수 Default 파라미터, Arguments, REST 파라미터

- Default 파라미터

파라미터 자리가 비어있을때 발동

function sum(a, b=2*a) {
  return a + b;
}
sum(1) // result: 1+2 = 3 => b에 파라미터가 존재하지 않기 때문에 b = 2*a 가 된다
sum(1,3) // result: 1+3 = 4; => b에 파라미터가 존재하기 때문에 b = 2*a 가 아닌 b = 3이 된다

- Arguments

입력받은 모든 파라미터를 Array와 유사한 배열안에 넣은 변수

function sum(a,b,c) {
  console.log(arguments);
}
sum(1,2,3); // result: Arguments[1,2,3]

단점: 파라미터를 추가하거나 삭제할때 복잡

해결방안


- REST 파라미터

입력받은 모든 파라미터를 Array에 넣은 변수

주의점 : 파라미터에 가장 뒤에 써야함, 한번만 사용 가능

function sum(a,b,...parameters) {
  console.log(parameters);
}
sum(1,2,3,4,5); // result: [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); // result: { a : 2, b : 3, c : 1 }
}
countWord('aacbbb');

* Primitive Data Type, Reference Data Type

- Primitive Data Type

문자와 숫자가 해당되며 변수에 값이 그대로 저장

var name1 = 'kim';
var name2 = name1;
name1 = 'park';
console.log(name1,name2); // result: ('park', 'kim');

- Reference Data Type

Array와 Object가 해당되며 변수에 값이 저장이 안되며 reference(pc 메모리 위치)가 저장

var name1 = { name : 'kim' };
var name2 = name1;
name1.name = 'park'
console.log(name1.name,name2.name); // result: ('park', 'park')

예시

1.

var name1 = { name : 'kim' };
function reName(name) {
  name = { name : 'park' }
}
reName(name1); // result: 'kim'
// 이유: 파라미터는 변수 생성 & 할당과 같아서 reference가 같지 않아 재할당 불가능

2.

var name1 = { name : 'kim' }
var name2 = { name : 'kim' }
name1 === name2 ? true : false; // result: false
// 이유: 동일한 키와 값을 가지고 있지만 다른 reference를 가르키기 때문에

profile
A fancy web like a rose

0개의 댓글