Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 싸피
- 최단 경로
- 세마포어와 뮤텍스의 차이
- 동기화
- Synchronization
- 세마포어와 뮤텍스
- Proxy Server
- 호스팅이란?
- 다익스트라 알고리즘
- Dijkstra Algorithm
- floyd-warshall
- 뮤텍스
- 플로이드 워셜
- 다익스트라
- 서버 호스팅
- 프록시
- SSAFY
- 싸피 합격
- 클라우드 서버
- 세마포어란?
- 뮤텍스란?
- 웹 호스팅
- 호스팅
- Proxy
- 플로이드 와샬
- 세마포어
- 싸피 면접 후기
- 프록시서버
- 삼성 청년 SW 아카데미
Archives
- Today
- Total
어제의 나보다 성장한 오늘의 나
[자바스크립트] default parameter 본문
자바스크립트는 타입이 없는 자유로운 언어이다. 그렇다면 함수의 인자로 내가 원하는 값이 안 왔을 때? 어떻게 처리할까? ES6 이전에는 다음과 같이 썼다.
const f = function (x, y, z) {
x = x !== undefined ? x : 3
y = typeof x !== "undefined" ? y : 4
console.log(x, y)
}
f(0, null)
x 인자가 undefined가 아니라면 그대로 x값 아니면 3을 저장해주고, y도 typeof로 확인하는 모습이다.
하지만 저렇게 일일이 확인하면 귀찮을 것이다. 그래서 ES6에서는 다음과 같이 쓰면 undefined를 처리해준다.
const f = function (a = 1, b = 2, c = 3, d = 4, e = 5, f = 6) {
console.log(a, b, c, d, e, f)
}
f(7, 0, "", false, null)
f(undefined,undefined,undefined,undefined,undefined,undefined,)
따라서 undefined 혹은 누락된 파라미터에 대해서 작동한다.
다른 방향으로 식을 적용할 수 있다.
const f = function (x = 1, y = 3 + x) {
console.log(x, y)
}
f() // 1, 4
하지만 다음과 같이 선언하면 작동하지 않는다.
const f = function (x = 1, y = 3 + z, z = 4) {
console.log(x, y)
}
f() // z is not defined
위를 보면 바로 알 수 있을 것이다. 그렇다 인자들은 차례대로 생성되고 할당되는데 z는 아직 할당이 안된 것이다. 따라서 순서가 중요하다는 걸 알 수 있다.
그렇다는 건 함수도 올 수 있다는 것이다!
const getDefault = function () {
console.log('getDefault Called.')
return 10
}
const sum = function (x, y = getDefault()) {
console.log(x + y)
}
sum(1, 2)
sum(1)
출처
'공부 > JavaScript && jquery' 카테고리의 다른 글
[자바스크립트] spread operator (0) | 2021.04.27 |
---|---|
[자바스크립트] rest parameter, 매개변수가 많이 넘어 왔을 때 처리 (0) | 2021.04.26 |
[자바스크립트] Tag Function (0) | 2021.04.26 |
[자바스크립트] forEach, map, reduce (0) | 2021.04.26 |
[자바스크립트] var, let의 전역객체에 대해서... (0) | 2021.04.26 |
Comments