본문 바로가기

Javascript eval() example

자바스크립트 eval() 함수를 이용하여 문자열로 표현된 식이나 함수 실행하기


var str = '10 + 20' ;

var ans = eval ( str ); // 문자열을 표현식으로 해석하여 실행하면 위의 산술식이 실행되므로 30을 리턴한다


다음과 같이 함수(익명함수 포함)를 선언하고 즉시 호출하기 위한 코드는 오류를 발생한다. 함수선언은 반드시 마지막 ' } ' 으로 종료되어야 하기 때문이다

function() {

alert('익명함수 호출실행됨1');

}(); // <-- 함수선언 문법 오류


오류가 발생한 위의 코드를 약간 수정하여 아래의 코드를 실행하면 선언과 동시에 호출할 수 있고 문제 없이 실행된다

괄호 안에 함수를 선언하면 선언문법을 지킬 수 있고, 그 함수를 호출하기 위해 괄호 밖에 함수호출을 위한 괄호를 사용한 것이다

(function() {

alert('익명함수 호출실행됨1');

})();


다음과 같이 문자열 형식으로 선언된 함수가 있을 때 eval () 함수를 사용해서 실행할 수도 있다

var strFun = "function() { "+

"alert('익명함수 호출실행됨3'); "+

"}";

eval("("+strFun+")()"); // <-- 함수선언 문법을 지키고 선언과 동시에 실행하기 위해 괄호를 사용한 것이다