반응형
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>
▼ 다음은 연산할 식만 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>
반응형
'웹 프로그래밍 > 자바스크립트' 카테고리의 다른 글
자바스크립트 정규 표현식으로 휴대폰 번호 유효성 검사하기 (0) | 2023.10.21 |
---|---|
자바스크립트 Javascript 사용자 입력 창 prompt() 함수 사용하기 (0) | 2023.10.20 |
자바스크립트 Javascript 메시지 출력 alert() 함수 사용하기 (2) | 2023.10.20 |
자바스크립트 정규식 표현으로 이름 유효성 검사하기 (1) | 2023.10.19 |
자바스크립트 내장 객체 Array 의 concat 함수 알아보기 – 2회 (0) | 2023.10.11 |
자바스크립트 parseFloat 함수 이용해서 문자열을 실수로 변환하기 (0) | 2023.10.11 |
자바스크립트 정규표현식으로 ltrim, rtrim 공백 제거 함수 구현하기 (0) | 2023.10.11 |
자바스크립트 배열 Array 초기화 하는 다양한 방법 (0) | 2023.10.10 |