반응형
엄격 모드
- 정의 : "use strict" 지시어를 사용하여 코드 실행을 더 엄격하게 만드는 자바스크립트 기능
- 실수를 더 빠르게 잡아냄
- 구문 오류를 강하게 체크
- 암묵적인 동작 금지 → 개발자가 의도하지 않은 버그 예방
엄격모드 사용 방법
- "use strict"는 반드시 파일 또는 함수의 맨 앞에 와야 함!
전체 스크립트에 적용
"use strict";
x = 10; // ❌ ReferenceError: x is not defined
함수 단위로 적용
function myFunc() {
"use strict";
y = 5; // ❌ ReferenceError: y is not defined
}
엄격 모드에서 달라지는 주요 동작 비교
상황 | 느슨한 모드(기본) | 엄격 모드 |
선언 없이 변수 사용 | x = 3 가능 | ❌ ReferenceError |
읽기 전용 속성 변경 | 무시됨 | ❌ TypeError |
삭제 불가능한 속성 삭제 | 실패하지만 오류 없음 | ❌ TypeError |
this가 undefined일 때 | this가 전역 객체 | ❌ undefined (안전) |
중복 매개변수 허용 | 허용됨 | ❌ SyntaxError |
예약어 사용 | 가능 | ❌ 오류 발생 |
느슨한 모드
function loose() {
x = 10; // 오류 없음 (전역 변수로 만들어짐 — 위험!)
console.log(x);
}
loose(); // 10
엄격 모드
function strict() {
"use strict";
x = 10; // ❌ ReferenceError
}
strict();
반응형
'JS > Javascript' 카테고리의 다른 글
[javascript] 재귀 호출 (Recursion) (2) | 2025.07.30 |
---|---|
[javascript] 함수 2-1 / 기명함수와 익명함수 (1) | 2025.07.30 |
[javascript] 함수 3 / 함수의 종류 (일반, 즉시실행, 생성자 제너레이터, 비동기(Async), 콜백(callback) .. 함수) (3) | 2025.07.29 |
[javascript] 함수 2 / 함수의 선언 방식(함수 선언식, 함수 표현식, 화살표함수, 즉시실행 함수) (1) | 2025.07.29 |
[javascript] 인풋(input) 속성 제어 및 메서드 (5) | 2025.07.25 |