독서
strict mode
als982001
2023. 2. 4. 20:45
- 암묵적 전역(implicit global): 아래 코드에서는 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성하였다. 그래서 x를 전역 변수인 것처럼 사용할 수 있는데, 이러한 현상을 암묵적 전역이라 한다.
function foo() {
x = 10;
}
foo();
console.log(x); // 10이 출력된다.
- strict mode: 위와 같은 상황은 오류를 발생시킬 가능성이 크기 때문에, 이러한 현상을 막기 위해 자바스크립트 언어의 문법을 좀 더 엄겨깋 적용하는 것. 이 덕분에 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 명시적인 에러를 발생시킨다.
- 주의점: 전역에 strict mode를 적용하거나 함수 단위로 strict mode를 적용하는 것은 피하는 것이 좋다.
- 적용 방법: 전역의 선두나 함수 몸체의 선두에 'use strict';를 추가한다.
"use strict";
function foo() {
x = 10;
}
foo(); // ReferenceError: x is not defined