이번에는 자바스크립트 함수에 대해 알아보자.
자바스크립트에서 함수는 객체 타입으로 값처럼 사용이 가능하다.
따라서 함수를 변수에 대입하거나 매개 변수로 넘길 수 있다.
또한 배열의 요소에 넣거나 객체의 프로퍼티로 설정이 가능하고,
매개 변수의 개수가 일치하지 않아도 호출이 가능하다는 특징이 있다.
자바스크립트에서 함수는 일급 객체에 해당하는데,
이 일급 객체란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 말한다.
일급 객체의 조건은 다음과 같다.
변수에 할당 가능하고, 함수의 매개 변수로 전달할 수 있고, 함수의 반환 값으로 사용 가능해야 한다.
아무튼 자바스크립트에서 함수의 특징은 위와 같다.
그렇다면 함수는 어떻게 만들고 어떻게 사용할까
우선 함수를 만들 때는 선언식과 표현식을 통해 만들 수 있다.
함수 선언식은
function 함수명() {함수 내용} 과 같이 작성하면 된다.
함수 표현식은
let 함수명 = function() {함수 내용} 과 같이 작성하면 된다.
함수 선언식은 함수의 이름과 함께 정의하는 방식으로
함수의 이름과 매개 변수, 내용이 필요하고,
호이스팅 된다는 특징이 있다.
함수 표현식은 익명함수로 정의가 가능하고,
매개변수와 내용이 필요하며
호이스팅되지 않는다는 특징이 있다.
무슨 말인지 코드를 통해 알아보자.
위와 같이 작성한 코드를 실행해 보면 다음과 같이 출력된다.
plus 함수는 잘 작동하지만
minus 함수에서 오류가 발생한다.
즉, plus 함수는 그 기능이 모두 호이스팅 되지만
표현식인 minus함수는 변수의 정의와 마찬가지로 선언과 할당으로 분리되어
선언은 호이스팅되지만 그 기능은 코드가 작성된 위치에서 이뤄지기 때문에
제대로 작동하지 않는 것이다.
그 밖의 특징으로는
함수의 실행 결과로 함수를 반환할 수 있고,
함수가 특별한 값을 리턴하지 않을 경우에는 undefined가 반환된다는 특징이 있다.
위의 코드를 출력하면 아래와 같다.
아무것도 return 하지 않는 func 함수의 경우 undefined가 출력되는 것을 볼 수 있다.
또 정의된 함수를 호출 시에 함수를 값으로 넘길 수도 있다.
위와 같이 작성했을 때, 아래와 같은 결과가 도출된다.
'Front > JavaScript' 카테고리의 다른 글
Java Script 기본 문법(5) (0) | 2023.05.03 |
---|---|
Java Script 기본 문법(4) (0) | 2023.05.03 |
Java Script 기본 문법(2) (0) | 2023.05.03 |
JavaScript 기본 문법(1) (0) | 2023.05.03 |
JavaScript(2) (0) | 2023.05.03 |