Please Enable JavaScript!
Gon[ Enable JavaScript ]

반응형

JavaScript 내장 함수인 `eval()`은 문자열을 수식으로 바꿀 수 있는데, 동적으로 생성된 코드나 사용자 입력을 수행하고 결과를 계산할 때 많이 사용합니다. 또한 사용자 입력을 수식으로 해석하고 처리할 때 `eval()`은 유용합니다. 사용자가 입력한 수식을 문자열로 받아들이고 계산 결과를 반환할 수 있습니다. 그러나 주의해야 할 점은 `eval()`을 사용할 때 보안상의 위험이 있을 수 있으며, 안전하지 않은 입력을 실행하는 데 사용하면 보안 취약점이 발생할 수 있습니다. 따라서 `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() 문자열을 수식으로 바꾸는 방법

 

※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
자바스크립트 정규표현식으로 ltrim, rtrim 공백 제거 함수 구현하는 방법
자바스크립트 parseFloat 함수 이용해서 문자열을 실수로 변환하는 방법
자바스크립트 내장 객체 Array 의 concat 함수 알아보기 – 2
자바스크립트 display 속성 이용해서 접거나 펴는 방법
자바스크립트 내장함수 eval() 문자열을 수식으로 바꾸는 방법
반응형
Posted by 녹두장군1
,