함수 내부에서 return
키워드를 사용하는 것은 return 뒤에 작성된 내용이 함수 밖으로 반환된다는 것도 의미하지만 return
키워드가 사용된 부분에서 함수가 종료된다는 것도 의미합니다.
따라서 아래와 같이 return키워드 이후 작성된 console코드는 실행되지가 않습니다.
function sum(x, y) {
return x+y
console.log(x)
}
sum(1,3)
또한 이러한 특성을 이용해 아래와 같이 조건문에서 활용할 수도 있습니다.
function sum(x, y) {
if(x<2) {
return
} else {
return x + y
}
}
sum(7,3)
함수 안에서는 따로 매개변수를 지정하지 않아도 arguments
라는 특정 객체를 사용할 수 있습니다. arguments
는 함수 안에서 언제든지 사용할 수 있도록 설계되어 있습니다.
function sum() {
console.log(arguments)
return
}
console.log(sum(7,3))
▼Arguments(2)
0: 7
1: 3
▶callee: ƒ sum()
length: 2
▶Symbol(Symbol.iterator): ƒ values()
▶[[Prototype]]: Object
확인을 해보면 arguments
객체에는 함수를 실행할 때 인수로 넣은 값이 배열형태로 들어가 있는 것을 확인할 수 있습니다.
따라서 아래와 같이 활용해 결과적으로 10을 출력해낼 수 있습니다.
function sum() {
console.log(arguments)
return arguments[0] + arguments[1]
}
console.log(sum(7,3))
※
arguments
는 언제 사용되나?
함수를 실행할 때 실행하는 인수가 너무 많아서 매개변수를 일일히 지정하기가 너무 어려운 경우arguments
객체를 활용 할 수 있습니다.하지만
arguments[0] + arguments[1]
와 같은 코드는 직관적이지 않기에 되도록이면 아래와 같이 이름을 지정을 해 받는 인수가 어떤 인수인지를 명시적으로 나타내는 것을 권장합니다.function sum(x, y) { return x + y } console.log(sum(7,3))