eval은 es6의 메소드가 아닙니다. 이 메소드는 JavaScript 문자열을 계산하고 문자열을 스크립트 코드로 실행하는 데 사용됩니다. 그렇지 않으면 표현식 평가 결과가 반환됩니다. 이며 구문은 "eval(string)"입니다.
이 튜토리얼의 운영 환경: Windows 10 시스템, ECMAScript 버전 6.0, Dell G3 컴퓨터.
eval() 함수는 JavaScript 문자열을 계산하여 스크립트 코드로 실행합니다.
인수가 표현식이면 eval() 함수가 표현식을 실행합니다. 인수가 Javascript 문인 경우 eval()은 Javascript 문을 실행합니다.
eval() 함수는 들어오는 문자열을 JavaScript 코드로 실행합니다. 들어오는 문자열이 표현식이면 표현식 평가 결과를 반환하고, 그렇지 않으면 정의되지 않은 값을 반환합니다.
Description
eval()에 전달된 매개변수가 문자열이 아닌 경우 매개변수가 직접 반환됩니다.
비엄격 모드에서 eval()이 직접 호출되면 var를 사용하여 선언된 변수와 function을 사용하여 선언된 함수는 현재 어휘 범위를 수정합니다. let 및 const를 사용하여 선언된 변수는 현재 어휘 범위를 수정하지 않습니다. 어휘 범위는 현재 시간에 생성됩니다.
eval()이 비엄격 모드에서 간접적으로 참조되면 전역 환경에서 직접 실행됩니다. var를 사용하여 선언된 변수와 function을 사용하여 선언된 함수는 전역 어휘 범위를 수정하고 let 및 const를 사용하여 선언된 변수는 전역 어휘 범위는 수정되지 않지만 전역 환경에 새로운 어휘 범위가 생성됩니다.
엄격 모드에서 eval()을 직접 호출하면 현재 새로운 독립 어휘 범위가 생성됩니다.
eval()이 엄격 모드에서 간접적으로 참조되면(eval() 내의 문자열에서 엄격 모드가 켜져 있는 경우에만 해당 문자열이 엄격 모드로 실행됨) 전역 변수에 새로운 독립 문자열이 생성됩니다. 환경 어휘 범위.
window.eval()을 사용하는 것은 eval()에 대한 간접 참조와 동일합니다.
eval() eval()에서 실행되는 코드는 JS 인터프리터(Interpreter)를 호출하여 해석하고 실행할 수만 있으며, Just-In-Time 컴파일러(JIT Compiler)에서는 최적화할 수 없습니다. ()로 인해 JS 엔진이 생성된 기계어 코드에서 변수 조회 및 할당이 수행되어 성능 문제가 발생할 수 있습니다.
eval() 부적절하게 사용하면 내부에서 실행되는 문자열이 악의적인 수정에 취약해져서 보안 문제(예: XSS 공격)가 발생할 수 있습니다.
eval()을 사용하면 코드 축소기의 동작이 방해됩니다. 코드 압축 도구는 일반적으로 로컬 변수 이름을 더 짧은 변수 이름(예: a 및 b 등)으로 변경하여 코드 크기를 줄입니다. eval()을 사용하면 eval()을 통해 외부 지역 변수에 접근할 수 있으므로 코드 압축 도구는 eval()이 접근할 수 있는 지역 변수 이름을 압축하지 않으므로 코드 압축률이 낮아집니다.
Syntax
eval(string)
예제는 다음과 같습니다.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>123</title> </head> <body> <script> eval("x=10;y=20;document.write(x*y)"); document.write("<br>" + eval("2+2")); document.write("<br>" + eval(x+17)); </script> </body> </html>
출력 결과:
위 내용은 eval은 es6의 메소드인가요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!