여기 2가지 함수 foo, bar 가 있다.
동일한 조건절, 다른 순서일 때 다른 결과값이 나온다.
function foo(x) {
if (x < 1) {
return "Less than one";
} else if (x < 2) {
return "Less than two";
} else {
return "Greater than or equal to two";
}
}
두번째 함수 bar
function bar(x) {
if (x < 2) {
return "Less than two";
} else if (x < 1) {
return "Less than one";
} else {
return "Greater than or equal to two";
}
}
x에 0을 대입했을 때 나오는 결과 값은
foo(0) // "Less than one"
bar(0) // "Less than two"
이유는 함수에서 순서대로 조건절을 도는데 맞는게 있으면 바로 return이 되어버리기 때문이다.
뒤의 조건절은 거치지 않고 바로 함수를 종료해버린다.
조건절 순서를 짤 때 주의해서 잘 짜야된다는 것을 다시 느낌,,
'Frontend > Java Script' 카테고리의 다른 글
Java Script - 3. 함수 (0) | 2021.04.12 |
---|---|
1. Call Stack (0) | 2021.03.23 |
Java Script - 2. 객체 값 조회, 가져오기 (0) | 2021.03.04 |