일단 함수의 용어에 대한 정의를 하고 지나가겠습니다.
함수는 어떤 함에 수를 넣었을 때 그 input에 매핑되는 output이 나오는 개념을 뜻합니다.
실제 사용자는 함에 들어있는 동작을 몰라도 input을 넣어서 output을 얻을 수 있는거죠.
이런 함수라는 개념은 제가 알고있는 모든 프로그래밍언어에서 적용되는 개념인데요.
방금 설명드린 함수라는 개념처럼 어떤 코드블록에 input을 넣고 output을 꺼내는 구조입니다.
근데 프로그래밍 언어 별로 특성이라는 것이 있잖아요?
자바스크립트에서는 함수라는 그 자체를 하나의 type으로 취급하기 때문에,
함수를 변수에 대입할 수도 있고, 함수에 프로퍼티를 지정하는 것도 가능해요.
그리고 다른 함수 내에 중첩되어 정의될 수도 있어요!
자바스크립트에서 함수를 선언하는 문법은 아주 기본적으로
function, 함수이름, 괄호 열고, 파라미터들을 ,로 구분하여 나열하고, 괄호닫고, 중괄호로된 코드블록으로 사용할 수 있습니다!
ES6가 되면서 arrow function이라는 것도 생겼는데요.
문법이랑 this와 관련된 부분만 달라졌지, 함수 개념 자체가 달라진 것은 아닙니다.
그리고 함수는 output반환을 return이라는 예약어로 반환할 수 있는데요.
만약에 자바스크릡트에서 아무것도 return을 안해주면 그 값은 undefined가 반환되게 됩니다.
그리고 또 뭘 설명할게 있을까요...
기본적으로 함수는 caller와 callee로 나누어집니다.
간단하게 caller는 해당 함수의 주소값을 참조하여 call하는 부분이고
callee는 caller로부터 called당한 함수가 되는 것입니다.
'개발 > FrontEnd Interview' 카테고리의 다른 글
이벤트 루프란? (0) | 2021.03.21 |
---|---|
자바스크립트 엔진 (0) | 2021.03.21 |
SPA 란 무엇일까요? (0) | 2021.03.16 |
[redux] 리덕스란? (0) | 2021.02.23 |
Array.from은 spread 보다 느릴까? (0) | 2021.02.19 |