자바스크립트 eval() 함수를 이용하여 문자열로 표현된 식이나 함수 실행하기
var str = '10 + 20' ;
var ans = eval ( str ); // 문자열을 표현식으로 해석하여 실행하면 위의 산술식이 실행되므로 30을 리턴한다
다음과 같이 함수(익명함수 포함)를 선언하고 즉시 호출하기 위한 코드는 오류를 발생한다. 함수선언은 반드시 마지막 ' } ' 으로 종료되어야 하기 때문이다
function() {
alert('익명함수 호출실행됨1');
}(); // <-- 함수선언 문법 오류
오류가 발생한 위의 코드를 약간 수정하여 아래의 코드를 실행하면 선언과 동시에 호출할 수 있고 문제 없이 실행된다
괄호 안에 함수를 선언하면 선언문법을 지킬 수 있고, 그 함수를 호출하기 위해 괄호 밖에 함수호출을 위한 괄호를 사용한 것이다
(function() {
alert('익명함수 호출실행됨1');
})();
다음과 같이 문자열 형식으로 선언된 함수가 있을 때 eval () 함수를 사용해서 실행할 수도 있다
var strFun = "function() { "+
"alert('익명함수 호출실행됨3'); "+
"}";
eval("("+strFun+")()"); // <-- 함수선언 문법을 지키고 선언과 동시에 실행하기 위해 괄호를 사용한 것이다