eval() 함수는 JavaScript 문자열을 평가하고 이를 스크립트 코드로 실행합니다.
인수가 표현식인 경우 eval() 함수는 표현식을 실행합니다. 인수가 Javascript 문인 경우 eval()은 Javascript 문을 실행합니다.
문법
参数 | 描述 |
---|---|
string | 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。 |
eval() 함수 사용법에 대한 자세한 설명:
이 함수는 자주 사용되지 않을 수도 있지만 어떤 경우에는 큰 효과가 있습니다. eval() 함수의 사용법을 소개합니다.
이 함수는 문자열 str을 매개변수로 받을 수 있으며, 이 str을 자바스크립트 코드의 일부로 실행할 수 있습니다. str의 실행 결과가 값이면 이 값을 반환하고, 그렇지 않으면 정의되지 않은 값을 반환합니다. 매개변수가 문자열이 아닌 경우 매개변수가 직접 반환됩니다. 예시는 다음과 같습니다.
eval("var a=1");//声明一个变量a并赋值1。 eval("2+3");//执行加运算,并返回运算值。 eval("mytest()");//执行mytest()函数。 eval("{b:2}");//声明一个对象。
위 코드에 특별한 주의를 기울여야 합니다. 마지막 문은 객체를 선언합니다. 이 객체를 반환하려면 다음과 같이 객체 외부에 또 다른 괄호 레이어를 중첩해야 합니다.
function a(){ eval("var x=1"); console.log(x); } a(); console.log(x);
위의 성능을 통해 eval() 함수는 새로운 범위를 생성하지 않으며 해당 범위는 자신이 위치한 범위라는 결론을 내릴 수 있습니다. 이는 모든 주류 브라우저에 해당되지만 때로는 eval() 함수의 범위를 전역 범위로 설정해야 할 때도 있습니다. 물론 eval()은 전역 범위에서 사용할 수 있지만 실제 응용 프로그램에서는 종종 사용됩니다. 전역 범위에서 이 함수를 사용하는 것은 window.eval()을 사용하여 구현할 수 있습니다. 예를 들어 위 코드는 다음과 같이 변환될 수 있습니다.
function a(){ window.eval("var x=1"); console.log(x); } a(); console.log(x);
function a(){ if(window.execScript){ window.execScript("var x=1"); } else{ window.eval("var x=1"); } console.log(x); } a(); console.log(x);
위 내용은 편집자가 공유한 JavaScript의 eval() 함수 사용법에 대한 자세한 설명입니다.