← Back to NOTES 🌰 ← Effective JavaScript 🤿

← 아이템 15 - 블록-지역 함수 선언문의 스코프에 주의하라

핵심 요약

eval은 강력하고 유연하지만 위험한 기능이다. 특히 지역 변수 생성에 사용할 때는 동적 바인딩으로 인해 스코프가 예측하기 어려워진다. eval을 통한 변수 생성은 자제하고, 필요한 경우 감싸진 함수 안에서 호출하여 외부 스코프 오염을 방지해야 한다.

자세한 내용

eval의 특징

동적 바인딩의 문제

기본 동작

eval의 인자는 호출자의 지역 스코프 안에서 실행되어 동적 바인딩 발생

조건부 실행 문제

eval이 조건문 안에 있으면 조건이 참일 때만 변수가 스코프에 추가됨

스코프 오염 위험

외부 호출자의 스코프 변경

eval을 통해 함수 외부에서 내부 스코프를 변경할 수 있음

예측 불가능한 동작

어떤 변수가 바인딩되어 참조되는지 쉽게 파악하기 어려움

안전한 사용 방법