티스토리 뷰
function printSquare(x){
console.log(x * x);
}
function getSquare(x){
return x * x;
}
printSquare(3)
console.log(getSquare(3))
console.log(printSquare(3))
printSquare 함수는 파라미터 x의 제곱을 콘솔에 출력하는 함수이고 getSquare 함수는 파라미터 x를 제곱해서 리턴해주는 함수 입니다.
함수들을 각각 호출해보면 printSquare 함수에 숫자 값 3을 전달해줬으므로 파라미터 x에는 숫자 값 3을 전달받게 되고 그러면 x * x 그러니까 3 * 3이 되고 결과적으로 console.log(9)가 실행이 되면서 콘솔에는 9가 출력이 됩니다.
getSquare 함수에 숫자 값 3을 전달하면 이번에도 파라미터로 숫자 값 3이 전달됐으니까 리턴 x * x가 리턴 3 * 3이 돼서 함수 호출 부분이 9로 대체가 됩니다.
리턴문이 실행됐으니까 자연히 getSquare 함수는 종료가 됩니다. 그런데 생각해보면 함수 호출 부분이 9로 대체되기만 했지 그 다음 동작에 대해서는 전혀 작성된 코드가 없습니다. 그러면 결국 프로그램은 이대로 종료가 되는데요. 저장하고 실행해보면 아무것도 출력이 되지않는 것을 확인할 수 있습니다.
getSquare함수에 console.log를 감싸주면 getSquare(3)은 9 이므로 console.log(9)와 같은 의미입니다. 저장하고 실행하면 9가 출력되는 것을 확인할 수 있습니다.
console.log(printSquare(3))는 return 값이 으므로 함수 호출 부분은 undefined 값을 리턴 받게 됩니다.
저장하고 실행하면 9와 undefined 값이 출력되는 것을 확인할 수 있습니다.
여기서 9는 2번 줄에서 console.log(3*3)의 결과이고 undefined는 console.log(printSquare(3))의 return값을 출력한 결과값입니다. 함수를 선언할 때 리턴문을 따로 작성하지 않으면 undefined 값을 리턴합니다.
정리하면, 리턴은 함수를 실행하고 어떤 값을 돌려주는 것이고 console.log는 어떤 것을 출력해 주는 함수입니다.
'프론트엔드 > JavaScript' 카테고리의 다른 글
[추상화] 11.변수의 scope (0) | 2022.09.21 |
---|---|
[추상화] 09.옵셔널 파라미터 (1) | 2022.09.20 |
[추상화] 06. return문 제대로 이해하기 (0) | 2022.09.18 |
[추상화] 02. 복합 할당 연산자 (0) | 2022.07.04 |
[추상화] 01. 할당 연산자 (0) | 2022.07.04 |
- Total
- Today
- Yesterday
- undefined
- find
- 기본형 데이터
- 참조형 데이터
- 비교 연산자
- 타입변환
- foreach
- filter
- redux thunk
- redux
- 느슨한 타입(loosely typed)
- redux middleware
- 불변 객체
- 얕은복사
- redux-middleware
- map
- findindex
- null
- EVERY
- some
- 동적(dynamic) 언어
- redux-thunk
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |