본문 바로가기
TIL

220510: JavaScript 암묵적 전역

by 김비누! 2022. 5. 10.

📝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명이 넘었다

별건 아니지만 기분좋다..ㅎㅎ..

'TIL' 카테고리의 다른 글

220513: HTML document.write, JavaScript 배열 구조분해할당  (0) 2022.05.13
220512  (0) 2022.05.12
220509  (0) 2022.05.09
220428  (0) 2022.04.28
220426  (0) 2022.04.26

댓글