1. 함수 선언문형식으로 함수 정의 - Hoisting 됨
▲ 함수 선언문방식으로 함수를 하나 정의하자. 함수 선언문방식으로 정의했으니 Hoisting이 지원된다.
▲ 1행부터 각각의 행의 출력결과를 보자.
▲ 함수명을 출력하면 함수정의문 자체를 출력해주며, 함수이므로 타입은 당연히 function이고, 4행이서 함수에 인자를 하나 주었으므로 arguments의 길이가 1이므로 입력한 인자를 menu변수에 받아서 같이 출력했다.
2. 함수 표현식형식으로 함수 정의 - Hoisting 안됨
함수 표현식으로 정의는 변수에 함수를 넣는 것이며, 이 때 함수는 이름이 없는 익명함수이다.
▲ 인자를 두개 받는 함수이며 받은 인자로 각각 시작값과 끝값으로 설정해서 누적합을 구하는 함수
▲ return값을 가지므로 console.log로 출력해보면, prompt로 사용자의 입력을 받아서 입력받은 것을 전달해서 return문을 완성한다.
▲위와 같은 두 alert창으로 이름과 나이를 입력받은 뒤 최종 return이 일어나게되고 JS에서는 return 코드 이후에 또 다른 코드가 있더라도 error는 발생하지 않고 다만 실행이 안된다.
▲ 마지막으로 정의한 함수는 인자도 받고 리턴값도 있는 함수를 정의했다. 인자를 두개만 받았을 때는 두 인자사이에서 의 최대값을, 인자가 3개이상이면 for문과 arguments를 이용해 최대값을 리턴하는 함수이다.
3. 즉시 실행함수
즉시실행함수는 함수를 정의할 때 함수명을 생략해서 익명함수로 만들 수도 있다.
▲ 함수 선언부에 소괄호로 감싸주고 다시한번 함수 실행을 알리는 소괄호를 열고 닫아주므로써 즉시실행함수는 완성된다.
'JavaScript > Javascript_Advanced' 카테고리의 다른 글
[JS]Function(함수) part.4 (0) | 2022.04.12 |
---|---|
[JS]Function(함수) part.3 (0) | 2022.04.12 |
[JS]Function(함수) part.1 (0) | 2022.04.12 |
[JS]For문 & While문 (0) | 2022.04.11 |
[JS]Switch문 (0) | 2022.04.11 |