자바스크립트(Javascript) 내장함수 eval() 문자열을 수식으로 바꾸는 방법

 

환경: Eclipse Mars

 

eval 은 텍스트로 된 자바스크립트 코드를 실행시킬 수 있는 함수 입니다. 이 함수를 사용하면 소스 코드를 동적으로 실행이 가능합니다. 아주 유용한 함수죠. 문자열로 코드를 만들어서 실행할 수 있기 때문에 아주 다양하게 이용할 수 있습니다.

 

아래 샘플에서처럼 숫자와 연산자를 합쳐서 만든 수식을 실행할 수 있을 뿐만 아니라 변수가 들어간 수식도 연산이 가능합니다. “x * y” 는 그대로 두면 텍스트지만 eval 을 사용하면 xy1 = 20 * 30 이 되는 것이죠.

<!DOCTYPE HTML>
<html>
<head>
<meta charset="euc-kr">
<title>Javascript</title>
<style type="text/css">
body {background-color: #e7e7e7;}
</style>
<script type="text/javascript">
<!--
	var x = 20;
	var y = 30;
	
	var xy1 = eval("x * y") + "<br>";
	var xy2 = eval("10 * y") + "<br>";
	var xy3 = eval("100 + 200") + "<br>";

	document.write(xy1 + xy2 + xy3);
//-->
</script>
</head>
<body>
</body>
</html>

자바스크립트(Javascript) 내장함수 eval() 문자열을 수식으로 바꾸는 방법

 

다음은 연산할 식만 eval 함수의 인자로 넣는 것이 아니라 결과값을 받는 변수까지 넣은 전체 식을 인자로 넘겼습니다. 그렇게 해도 계산이 되어서 z d 변수에 값이 저장 됩니다. 아래 샘플처럼 현재 날짜와 x + y 의 값을 정확하게 계산해서 화면에 보여 주고 있습니다

<!DOCTYPE HTML>
<html>
<head>
<meta charset="euc-kr">
<title>Javascript</title>
<style type="text/css">
body {background-color: #e7e7e7;}
</style>
<script type="text/javascript">
<!--
	var x = 20;
	var y = 30;
	var z;
	var d;
	
	eval("z = x + y"); 
	eval("d = new Date;");
	
	document.write(z + "<br>");
	document.write(d);
//-->
</script>
</head>
<body>
</body>
</html>

자바스크립트(Javascript) 내장함수 eval() 문자열을 수식으로 바꾸는 방법


저작자 표시 비영리 변경 금지
신고
Posted by 녹두장군


티스토리 툴바