먼저 JS의 기능을 살펴보겠습니다.
자바스크립트 평가() 함수
정의 및 사용법
eval() 함수는 문자열을 평가하고 그 안에 있는 JavaScript 코드를 실행합니다.
문법
평가(문자열)
매개변수 설명
문자열이 필요합니다. 평가할 JavaScript 표현식 또는 실행할 명령문이 포함된 평가할 문자열입니다.
반환 값
문자열(있는 경우)을 평가하여 얻은 값입니다.
설명하다
이 메소드는 원시 문자열만 매개변수로 허용합니다. 문자열 매개변수가 원시 문자열이 아닌 경우 메소드는 변경되지 않은 상태로 반환됩니다. 따라서 String 객체를 eval() 함수에 매개변수로 전달하지 마십시오.
ECMAScript 구현에서는 eval 속성을 재정의하거나 eval() 메서드를 다른 속성에 할당하고 해당 속성을 통해 호출하려는 경우 EvalError 예외가 발생하도록 허용합니다.
던지다
매개변수에 유효한 표현식이나 명령문이 없으면 SyntaxError 예외가 발생합니다.
eval()이 불법적으로 호출되면 EvalError 예외가 발생합니다.
eval()에 전달된 Javascript 코드가 예외를 생성하는 경우 eval()은 예외를 호출자에게 전달합니다.
팁과 참고 사항
팁: eval()은 매우 강력하지만 실제 사용에서는 거의 사용되지 않습니다.
예
실시예 1
이 예에서는 여러 문자열에 eval()을 적용하고 어떤 결과가 반환되는지 확인합니다.
다음과 같이 코드 코드를 복사합니다.
<스크립트 유형="텍스트/자바스크립트">
eval("x=10;y=20;document.write(x*y)")
document.write(eval("2+2"))
변수x=10
document.write(eval(x+17))
</script>
산출:
200
4
27
실시예 2
다른 경우에는 eval()이 반환하는 내용을 살펴보세요.
다음과 같이 코드 코드를 복사합니다.
eval("2+3") // 5를 반환합니다.
var myeval = eval; // EvalError 예외가 발생할 수 있습니다.
myeval("2+3"); // EvalError 예외가 발생할 수 있습니다.
다음 코드를 사용하여 eval()의 매개변수가 유효한지 확인할 수 있습니다.
다음과 같이 코드 코드를 복사합니다.
노력하다 {
Alert("결과:" + eval(prompt("식을 입력하세요:","")));
}
잡기(예외) {
경고(예외);
}
첫 번째 방법은 js에서 eval을 사용하는 것입니다.
다음은 제가 직접 작성한 예시입니다
다음과 같이 코드 코드를 복사합니다.
call("showmsg");
함수 호출(함수이름){
eval("this."+functionName+"()");
}
함수 showmsg(){
경고("성공");
}
eval은 메소드로 이어붙인 문자열을 자동으로 인식하여 호출할 수 있습니다.
그러나 단점도 큽니다. 호출하는 메서드의 이름을 변경하여 누군가가 메서드를 호출할 수 있다고 상상해 보세요.
두 번째 방법은 주로 자체 정의된 방법으로 사용됩니다.
주로 두 번째 방법에는 특정 작성 방법이 필요하기 때문입니다.
다음과 같이 코드 코드를 복사합니다.
함수 호출(함수 이름) {
showmsgs["showmsg"]();
}
var showmsgs = { showmsg: 함수 () {
경고("성공");
}
}
call("showmsg");