function sayHi() {
alert("Hello, World!");
}
sayHi();
위에서 sayHi
함수는 함수 선언문(statement
)방식으로 만들어진 함수이다. 문장
이기 때문에 함수명을 생략할수없다.
var msg = "Hello, World!";
var sayHi = function() {
alert(msg);
};
sayHi();
반면 위와 같이 함수를 값으로써 취급하는 함수표현식
방식으로도 함수를 만들수있다.
또한, 함수표현식은 값으로 취급될수 있기 때문에 함수의 이름이 없어도 된다.
var fibo = function fibonacci() {
fibonacci();// 여기서 fibonacci() 함수를 호출할 수 있습니다.
// 이 함수 표현식이 이름을 갖고 있기 때문입니다.
}
// 여기서 fibonacci()를 호출하면 실패합니다. 하지만 fibo()는 동작합니다.
!function() {
alert("Hello from IIFE!");
}();
// "Hello from IIFE" 메시지를 보여줍니다.
!
가 있는걸 본다.표현식
으로 해석하려고 한다.문장
으로 해석하지 않고 표현식
으로 해석한다.!
가 아니라 + -
등 1진연산자 어떤걸 갖다 붙여도 정상 실행되는것을 확인할수있다.함수 문장
을 함수 표현식
으로 만들어버리는것이다.