일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 자바스크립트 연결리스트
- stack문제
- lodash
- leetcode
- 자바스크립트 문제
- JavaScript
- HTML
- 알고리즘문제풀이
- NPM
- JS
- 자바스크립트 알고리즘
- 자바스크립트 문제풀이
- 리액트쿼리
- 리액트
- CSS
- 자바스크립트 문제 풀이
- 프론트엔드
- til
- leetcode문제풀이
- next13
- Baekjoon
- 자바스크립트코딩테스트
- 타입스크립트
- 제로베이스
- 자바스크립트 알고리즘 문제
- 프로그래머스
- Next
- Next.js13
- 자바스크립트
- react
- Today
- Total
코드노트
자바스크립트 매개변수, 인수 본문
매개변수(parameter, 인자)
- 함수를 정의할 때 선언하며 함수 내부에서 변수와 동일하게 취급
- 매개변수는 함수가 호출될 때 생성이 된다.
- 일반 변수와 마찬가지로 undefined로 초기화된 이후 인수가 순서대로 할당된다.
* 함수가 호출되지 않았을땐 매개변수를 활용할 수 없다.
- 매개변수의 개수는 제한되고 있지 않다. 그러나 최대 3개 이상을 넘지 않는 것을 권장한다. * 매개변수가 적을수록 좋다.
- 그 이상의 매개변수가 필요하다면 하나의 매개변수를 선언하고 객체를 인수로 전달받는게 유리하다. * jQuery의 ajax메서드
인수(argument)
- 값으로 평가될 수 있는 표현식이어야한다.
- 함수를 호출할 때 지정하며, 개수와 타입에 제한이 없다.
- 매개변수는 함수 몸체 내부에서만 참조할 수 있다.
* 매개변수의 스코프는 함수 내부이다.
- 자바스크립트 언어는 매개변수, 인수의 개수가 맞는지, 타입이 맞는지 확인하지 않는다. 즉 오류가 없이 실행된다!!
ex)
function add(x, y) {
return x + y;
}
console.log(add(2) // NaN
- 매개변수가 2개 일 때 인수를 1개만 전달하게 되면 2 + undefined로 계산되어 NaN이 반환된다.
function add(x, y) {
return x + y;
}
console.log(add(2, 5, 10)) // 7
- 매개변수가 2개 일때 인수를 3개 전달하게 되면 10은 무시되고 2와 5만 전달되어 7이 반환된다.
그래서 Error 문구를 반환되게 조건문을 사용할 수 있다.
function add(x, y) {
if (y == undefined) {
throw new TypeError("매개변수와 인수의 갯수가 맞지 않습니다.");
} else if (typeof x !== "number" || typeof y !== "number") {
throw new TypeError("매개변수에 숫자 타입이 아닌 값이 할달되었습니다.");
}
return x + y;
}
console.log(add(2)); // TypeError: 매개변수와 인수의 갯수가 맞지 않습니다.
console.log(add("a", "b")); // TypeError: 매개변수에 숫자 타입이 아닌 값이 할달되었습니다.
- 인수가 1개만 들어오면 두번째 매개변수는 undefined가 된다고 했다. y값을 확인하여 Error문구를 출력한다.
- 인수의 타입을 확인하여 Error문구를 출력한다.
- 여기서 그럼 10은 없어진걸까? 라고 생각할 수 있다.
10은 arguments 객체에 보관되어 있다.
function add(x,y) {
console.log(arguments); // Arguments(3) [2, 5, 10, callee: ƒ, Symbol(Symbol.iterator): ƒ]0: 21: 52: 10callee: ƒ add(x,y)length: 3Symbol(Symbol.iterator): ƒ values()[[Prototype]]: Object
return x + y;
}
add(2, 5, 10); // 7
- *arguments는 가변인자 함수를 구현할때 사용하는 객체이다. 매개변수의 개수를 정확히 확정할 수 없을 때 사용한다.
'Code note > 자바스크립트' 카테고리의 다른 글
자바스크립트 즉시 실행 함수 IIFE (0) | 2022.12.06 |
---|---|
함수에서 객체(참조값)를 사용할때 주의해야한다.(순수함수, 비순수함수) (0) | 2022.12.06 |
자바스크립트 함수 정의 방법에 대하여 알고 시작하자 (0) | 2022.12.05 |
Object.is 메서드로 NaN 비교하기 (0) | 2022.11.30 |
마우스 스크롤 위치 추적 (0) | 2022.11.28 |