← Back to NOTES 🌰 ← Effective JavaScript 🤿
← 아이템 15 - 블록-지역 함수 선언문의 스코프에 주의하라
eval은 강력하고 유연하지만 위험한 기능이다. 특히 지역 변수 생성에 사용할 때는 동적 바인딩으로 인해 스코프가 예측하기 어려워진다. eval을 통한 변수 생성은 자제하고, 필요한 경우 감싸진 함수 안에서 호출하여 외부 스코프 오염을 방지해야 한다.
eval의 인자는 호출자의 지역 스코프 안에서 실행되어 동적 바인딩 발생
eval이 조건문 안에 있으면 조건이 참일 때만 변수가 스코프에 추가됨
eval을 통해 함수 외부에서 내부 스코프를 변경할 수 있음
어떤 변수가 바인딩되어 참조되는지 쉽게 파악하기 어려움