📝JavaScript 암묵적 전역(implied globals) 선언하지 않은 변수에 값 대입
자바스크립트에는 암묵적 전역이라는 개념이 있다.
선언하지 않고 사용한 변수는 자바스크립트 엔진이 전역 객체의 프로퍼티로 동적생성하는 것이다.
프로퍼티는 delete 연산자로 삭제할 수 있지만 변수는 삭제할 수 없다.
x = 40
console.log(x) // 10
function foo(){
y = 30
}
foo()
console.log(y) // 30
x, y는 선언하지 않고 값을 할당하였는데 ReferenceError가 발생하지 않고 정상적으로 값이 출력되었으며
foo 함수의 y는 전역 변수처럼 함수 밖에서 사용이 가능하다.
암묵적 전역은 에러 발생의 원인이 될 가능성이 크므로 let, const 키워드로 변수를 선언 후 사용해야 한다.
ES5부터는 strict mode
가 추가되어 기존에 무시되던 에러, JavaScript 엔진의 최적화 작업을 어렵게 만드는 코드에 대한 에러를 발생시킬 수 있다. strict mode 사용시 암묵적 전역에서 ReferenceError를 발생시킨다.
☕️ 잡담
어제 방문자수 100명이 넘었다
별건 아니지만 기분좋다..ㅎㅎ..
댓글