-
[코드스테이츠 TIL] 매개변수 & 변수 타입 Value or ReferenceStudy/JavaScript 2019. 11. 7. 12:00반응형
[ 매개변수 Parameters ]
- 전달인자의 길이가 유동적이라면 rest parameter를 이용해 매개변수를 지정해준다.
- 이때 매개변수는 배열의 형태로 전달된다.
function getMaxNum(...nums) { console.log(nums); // [3,4,5,6] } getMaxNum(3,4,5,6);
- 매개변수에 기본값을 넣어주고 싶다면 default parameter를 할당해줄 수 있다.
- 기본값은 문자열, 숫자, 객체 등 어떠한 타입도 가능하다.
function getRoute(destination, departure = 'ICN') { return '출발지: ' + departure + ',' + '도착지: ' + destination; } getRoute('PEK'); // '출발지: ICN, 도착치: PEK'
[ 변수의 타입 ]
Pass by Value : 값을 복사해서 넘기는 타입
=> string, number, boolean, null, undefined
let text = 'hello world'; function passByValue(param) { console.log(param); param = 'good bye'; } passByValue(text); // text === 'hello world'
- 파라미터를 확인하려면 함수 진입시에 확인하는 것이 좋다.
- 전달하는 변수가 string이기 때문에 함수 안쪽에서 값을 바꿔도 바깥쪽 text 변수에는 영향을 미치지 않는다.
Pass by Reference : 참조(주소값)을 복사해서 넘기는 타입
=> object, array, function
let obj = { greeting: 'hello world' }; function passByReference(param) { console.log(param); // { greeting: 'hello world' } param.greeting = 'good bye'; console.log(param); // { greeting: 'good bye' } } passByReference(obj); // obj는 { greeting: 'good bye' }
- 전달하는 변수가 object이기 때문에 함수 안쪽에서 값을 바꾸면 바깥쪽 text 변수에도 영향을 미친다.
★ 매개변수로 넘기는 변수의 타입이 무엇이냐에 따라 전달의 형태가 달라진다.
반응형'Study > JavaScript' 카테고리의 다른 글
[코드스테이츠 TIL] This & 함수메소드 call, apply, bind (0) 2019.11.11 [코드스테이츠 TIL] 객체지향 Class & Instance & Prototype (0) 2019.11.08 [코드스테이츠 TIL] Closure 클로저 함수 (0) 2019.11.06 [코드스테이츠 TIL] Scope 변수의 범위 (0) 2019.11.05 [코드스테이츠 TIL] Complexity 복잡도 (0) 2019.11.04