wrkbrs

[Javascript] 내장함수 eval() 문자열을 수식으로 바꾸는 방법 본문

JS

[Javascript] 내장함수 eval() 문자열을 수식으로 바꾸는 방법

zcarc 2018. 10. 28. 17:50

자바스크립트(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() 문자열을 수식으로 바꾸는 방법



출처: http://mainia.tistory.com/4378 [녹두장군 - 상상을 현실로]