Programming/JavaScript
모던 자바스크립트 13. Eval (문자열 코드 실행하기)
2mukee
2022. 4. 23. 20:37
320x100
320x100
eval
: 문자열 형태의 코드를 실행 할 수 있게하는 내장함수
let result = eval(code);
let code = 'alert("Hello")';
eval(code); // Hello
: 길이가 긴 문자열이 코드가 될 수 있는데, 여기엔 줄 바꿈, 함수 선언 변수 등이 포함 가능
: 마지막 구문의 결과가 eval의 결과가 됨
- eval 예시
let value = eval('1+1');
alert(value); // 2
let value = eval('let i = 0; ++i');
alert(value); // 1
let a = 1;
function f() {
let a = 2;
eval('alert(a)'); // 2
}
f();
: eval로 둘러싼 코드는 현재 렉시컬 환경에서 실행 되므로 외부 변수에 접근할 수 있음
- 외부 변수 변경
let x = 5;
eval("x = 10");
alert(x); // 10, 변경된 값
- 엄격모드에서의 eval
// 참고: 실행 가능한 모든 예시에 'use strict'가 적용되어있습니다.
eval("let x = 5; function f() {}");
alert(typeof x); // undefined (없는 변수)
// 함수 f도 읽을 수 없음
: 자체 렉시컬 환경으 갖고 있어, eval 내부에 선언된 함수와 변수는 외부에서 읽을 수 없음
※ eval은 모던 프로그래밍에서 잘 사용되지 않음
Refference
Eval: 문자열 코드 실행하기
ko.javascript.info
300x250
728x90