wrkbrs
[Javascript] 내장함수 eval() 문자열을 수식으로 바꾸는 방법 본문
자바스크립트(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>
▼ 다음은 연산할 식만 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>
출처: http://mainia.tistory.com/4378 [녹두장군 - 상상을 현실로]
'JS' 카테고리의 다른 글
[Javascript] document.getElementById("abc").innerHTML="" 사용법 (0) | 2018.12.21 |
---|---|
javascript / jquery 를 이용한 id, name, class 값 가져오기 (0) | 2018.12.21 |
사용자함수 | 이벤트핸들러 1회 적용하고 제거하기 addEventListenr() / removeEventLitener(), on() / … (0) | 2018.12.21 |
[JavaScript] undefined/null 의 true/false 비교 (0) | 2018.10.27 |
[Javascript] 폼(form) 전송과 submit 버튼(onsubmit 유형) (0) | 2018.10.27 |