JavaScript

자바스크립트 내장함수 eval()

bang2001 2013. 8. 3. 15:53

<HTML>

<HEAD>
<TITLE> :::: 내장함수 eval() :::: </TITLE>

<script language="JavaScript">

var ret_str, ret_float;

ret_str = "12 * 4 / 10"; //문자열
ret_float = 12 * 4 / 10; //정수값

document.write("<h2>[1] ret_str : "+ret_str+"<p>");
document.write("[2] eval(ret_str) : "+eval(ret_str)+"<p>");
document.write("[3] ret_float : "+ret_float+"</h2>");

</script>

</HEAD>

<BODY>
  
</BODY>
</HTML>

-------------------------------------------------------------------------------------------

eval() 내장함수의 역할은 문자열로 이루어진 수식이나 숫자를 실수로 바꿔주는 메소드이다.
위의 코드에서는 문자열로 이루어진 수식을 가지고 있는 변수와 정수값을 계산하는 수식을
가지고 있는 변수가 있다. 위의 코드에서 어떤 결과가 나오는지 살펴보면 다음과 같다.

-------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------

위와같이 문자열로 이루어진 수식을 실수로 변환하여 계산하였고 그 결과값을 출력한 것을
볼 수 있다. 단 이 내장함수의 인자는 문자열에 수식이나 숫자만 들어가야 한다는 점이다.
만약 문자가 들어가게 되면 다음과 같은 에러가 발생하는것을 볼 수 있다.

-------------------------------------------------------------------------------------------

<HTML>
<HEAD>
<TITLE> :::: 내장함수 eval() :::: </TITLE>

<script language="JavaScript">

var ret_str, ret_float;

ret_str = "12 * 4 / 10"; //문자열
ret_float = 12 * 4 / 10; //정수값

document.write("<h2>[1] ret_str : "+ret_str+"<p>");
document.write("[2] eval(ret_str) : "+eval(ret_str)+"<p>");
document.write("[3] ret_float : "+ret_float+"</h2>");

// 고의적으로 에러유발

var error = "안녕하세요.";

document.write("<h2> eval(error) : "+eval(error)+"</h2>");
</script>

</HEAD>

<BODY>
  
</BODY>
</HTML>

-------------------------------------------------------------------------------------------