| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- 코딩테스크
- 정처기필기
- styled-components
- 백준10815
- 백준
- Vue
- reactrouter
- 코테
- react
- 파이썬
- NextJs
- zustand
- 백준5086
- 정처기실기
- Vue3
- 리액트
- 정보처리기사
- 10815
- 이벤트버블링
- 바닐라js
- JS
- 타입스크립트
- 백준10798
- 자바스크립트
- 백준2501
- 투두리스트
- JavaScript
- 코딩테스트
- 정처기
- TypeScript
Archives
- Today
- Total
윤시의 블로그
[JavaScript] 엄격모드(strict mode) 본문
1. strict mode란?
JavaScript에서 strict mode는 JavaScript 코드에 대해 좀 더 엄격한 규칙을 적용하는 모드이다. 이를 사용하면 변수 선언을 하지 않고 사용하는 등의 오류를 미리 발견할 수 있다. 쉽게 말해, 코드에서 잘못된 부분이나 위험한 부분을 강제로 제한해서 실수를 줄이고, 에러를 미리 감지할 수 있도록 도와준다.
- 일반 모드에서는 실수로 잘못된 코드를 작성해도 에러가 발생하지 않을 수 있지만, strict mode에서는 에러를 즉시 발생시킨다.
- 예를 들어, 미리 선언되지 않은 변수를 사용하는 경우, strict mode에서는 오류가 발생한다.
2. strict mode 활성화 방법
strict mode는 코드의 첫 번째 줄에 "use strict"; 를 추가하여 활성화할 수 있다. 이렇게 하면 그 이후의 코드에서는 strict mode가 적용된다.
"use strict"; // strict mode 활성화
let x = 10; // 정상적으로 작동
y = 20; // ReferenceError: y is not defined (strict mode에서는 선언되지 않은 변수 사용이 에러를 발생시킴)
3. strict mode의 특징
1) 변수 선언 없이 사용 못함
- strict mode에서는 변수를 미리 선언하지 않고 사용하면 에러가 발생한다.
- 예를 들어, 변수 y를 선언하지 않고 사용하면, 일반 모드에서는 오류 없이 실행되지만, strict mode에서는 ReferenceError가 발생한다.
"use strict";
x = 10; // ReferenceError: x is not defined
2) 읽기 전용 속성에 값을 할당할 수 없음
- strict mode에서는 읽기 전용 속성(예: NaN, Infinity, undefined)에 값을 할당하려 하면 에러가 발생한다.
"use strict";
NaN = 100; // TypeError: Cannot assign to read only property 'NaN' of object
3) eval에서 변수와 함수 선언 제한
- eval 함수 내에서 선언된 변수나 함수가 전역 변수로 바뀌지 않도록 제한한다.
"use strict";
eval("var x = 10;");
console.log(x); // ReferenceError: x is not defined
4) this가 undefined가 될 수 있음
- 일반 모드에서는 this가 암묵적으로 전역 객체(window 또는 globalThis)를 가리키지만, strict mode에서는 함수 내에서 this가 undefined가 될 수 있다.
"use strict";
function showThis() {
console.log(this); // undefined
}
showThis(); // strict mode에서는 `this`가 `undefined`가 됨
4. strict mode 활용 이유
- 오류 예방 → strict mode는 코드에서 잘못된 부분을 미리 체크하고, 실수로 인해 발생할 수 있는 문제를 방지해준다.
- 디버깅 용이 → strict mode를 사용하면 자주 발생할 수 있는 숨은 버그를 사전에 예방하고, 개발 중 디버깅을 쉽게 할 수 있다.
- 최적화 → JavaScript 엔진은 strict mode에서 실행되는 코드를 더 효율적으로 최적화할 수 있다.
'JavaScript' 카테고리의 다른 글
| [JavaScript] Class (0) | 2025.02.27 |
|---|---|
| [JavaScript] DOM (0) | 2025.02.25 |
| [JavaScript] 스코프(Scope), 스코프체인(Scope Chain), 호이스팅(Hoisting) (0) | 2024.12.06 |
| [JavaScript] 제어구문 (1 - 조건문) (1) | 2024.12.01 |
| [JavaScript] (함수, 함수 표현식, 화살표 함수 기본) (1) | 2024.11.29 |