Eval 함수

eval 함수는 주어진 문자열을 JavaScript의 코드로서 평가/실행한다. 예를 들어, 아래의 예는 문자열로서 건네받은 $.print 메서드를 eval함수로 해석/실행하는 예다.

							var str = '$.print("eval 함수")';
							eval(str);
						

이렇게 보니, eval 함수는 자유자재로 JavaScript의 코드를 전달해 실행하는 것이 가능해서 유연하게 코딩할 수 있을 것처럼 보여진다. 그러나 아래와 같은 이유로 남용은 피해야 한다.

  • - 제3자에 의해 임의의 스크립트가 자기 벗대로 실행될 수 있는 가능성이 있다.(보안 위험)
  • - 일반적인 코드를 실행하는 것보다도 처리 속도가 늦다(성능저하).

나중에 이야기하겠지만, eval함수의 사용은 단지 JSON 데이터를 해석하는 경우로 머무는 것이 무난할 것이다. 그 외의 상황에서 eval 함수를 사용하고 있다면, 우선 다른 방법으로 치환할 수 없는지 검토해보아야 할 것이다.