JavaScript에서 문자열을 함수로 변환하려면 eval() 메서드를 사용해야 합니다. 이 메서드는 문자열을 매개변수로 받아 해당 문자열을 실제로 실행 가능한 JavaScript 코드, 즉 함수로 변환해 줍니다.
문법(Syntax)
eval(string);
예제(Example)
다음 예제에서는 JSON 형식의 문자열 안에 'age'라는 속성이 함수 형태의 문자열로 저장되어 있습니다. 이후 eval() 함수를 사용하여 age 속성의 문자열을 실제 함수로 변환한 뒤 호출하면, 아래 출력 결과처럼 나이 값이 정상적으로 반환되는 것을 확인할 수 있습니다.
<html>
<body>
<script>
var string = '{"name":"Ram", "age":"function() {return 27;}", "city":"New jersey"}';
var fun = JSON.parse(string);
fun.age = eval("(" + fun.age + ")");
document.write(fun.name + " " + "of Age" + " " + fun.age() + " " + "from city" + " " + fun.city);
</script>
</body>
</html>출력(Output)
Ram of Age 27 from city New jersey
주의 사항
eval()은 전달된 문자열을 그대로 실행하기 때문에, 외부 입력값이나 신뢰할 수 없는 데이터를 함께 사용할 경우 심각한 보안 취약점(코드 삽입 공격 등)이 발생할 수 있습니다. 따라서 실무에서는 가능한 한 JSON.parse(), new Function() 등 더 안전한 대안을 우선적으로 고려하는 것이 좋습니다.