Frontend/JavaScript

[JavaScript]내장함수 - eval 함수

sukii 2024. 1. 4. 18:53
반응형

내장함수

 

eval 함수
eval(string) : 매개변수로 전달받은 문자값을 자바스크립트 명령으로 변환하여 실행하는 함수

 

실습예제👩‍💻

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>JavaScript</title>
</head>
<body>
	<script type="text/javascript">
	var text="20 + 10";
	
    alert(text);
   	// => 출력 결과: 20 + 10 => 변수에 저장된 문자값 그대로 출력
	
    alert(eval(text));
   	// => 출력 결과: 30
   	// => 변수에 저장된 문자값을 eval 함수를 사용해 자바스크립트 명령으로 변환되어 실행되었으므로 
   	//연산 결과가 출력
	
   	//사칙 연산을 입력하면 문자 그대로 출력되지 않고, eval 함수로 인해 연산되어 결과 출력
	var operation=prompt("사칙 연산식을 입력해 주세요.");
	alert("연산결과 = "+eval(operation));
	
	var display="function() { alert('함수의 명령 실행'); }";
	alert("변수의 자료형 = "+typeof(display));
   	// => 함수를 ""안에 작성했기 때문에 출력 결과는 : 변수의 자료형 = string
	display();
   	// => 변수에 저장된 값이 함수가 아니므로 함수 호출 불가능 - 에러 발생
	
	//함수가 문자값으로 저장된 변수를 eval 함수를 사용하여 함수로 선언할 경우 함수가 먼저
	//선언되어지도록 앞과 뒤에 () 기호를 붙여 우선 처리되도록 작성 
	alert("변수의 자료형 = "+typeof(eval("("+display+")")));
    //=> 출력 결과: 변수의 자료형 = function
	eval("("+display+")")();
    //=> 출력 결과: 함수의 명령 실행
	</script>
</body>
</html>
반응형