자바스크립트 - 엄격 모드
안녕하세요, 미래의 자바스크립트 마법사 여러분! 오늘은 초반에는 조금 무서울 수 있지만, 포장지 아래에서 추가의 프렌치 푸드를 발견하는 것처럼 재미있을话题을 다루게 될 것입니다. 우리는 자바스크립트의 엄격 모드에 대해 이야기할 것입니다!
자바스크립트의 엄격 모드
운전을 배우는 것을 상상해 보세요. 처음에는 지도사가 너그러워서 작은 실수들을 방치할 수 있습니다. 하지만 당신이 진행될수록, 그들은 더 엄격해지고 작은 실수도 지적합니다. 자바스크립트의 엄격 모드도 exactamente 그렇습니다 - 코드에 대한 엄격한 지도사입니다!
엄격 모드는 ECMAScript 5(ES5)에서 도입된 기능으로, 프로그램이나 함수를 "엄격"한 운영 环境에 두도록 합니다. 이 엄격한 环境는 특정 작업을 방지하고 더 많은 예외를 발생시킵니다.
엄격 모드 활성화
엄격 모드를 활성화하는 것은 쉬워요 ( pie를 좋아하지 않는 사람이 어디 있을까요?). 단지 스크립트나 함수의 시작 부분에 "use strict" 문자열을 추가하시면 됩니다. 어떻게 보이는지 보겠습니다:
"use strict";
// 여러분의 코드 여기에
이렇게 하면 전체 스크립트에 대해 엄격 모드를 활성화했습니다. 하지만 기억하세요, 안전 벨트를 차는 것처럼 - 시작할 때 해야만 효과가 있습니다!
엄격 모드 사용 이유
이제 여러분은 "왜 자바스크립트를 더 엄격하게 만들어야 할까? 이미 충분히 복잡하지 않나요?"라고 고민할 수도 있습니다. 그러나 어린 padawan, 엄격 모드는 실제로 도와주기 위해 있습니다. 다음은 엄격 모드를 사용할 수 있는 이유입니다:
- 일반적인 코딩 실수를 잡아내어 예외를 발생시킵니다.
- 상대적으로 "안전하지 않은" 작업을 수행할 때 예외를 발생시키거나 방지합니다.
- 혼란스럽거나 잘 구상되지 않은 기능을 비활성화합니다.
- 코드를 더 안전하게 만듭니다.
- "cleaner"한 코드를 작성하는 데 도움이 됩니다.
간단한 예제를 보겠습니다:
"use strict";
x = 3.14; // 이 작업은 오류를 발생시킵니다
엄격 모드가 없다면, 자바스크립트는 기꺼이 전역 변수 x
를 생성합니다. 하지만 엄격 모드에서는 변수를 let
, const
, 또는 var
로 선언하지 않아서 오류를 발생시킵니다. 친구가 항상 신발 끈을 매는 것을 상기시켜주는 것과 같습니다!
전역 범위에서의 엄격 모드
전역 범위(함수 외부)에서 엄격 모드를 사용하면 전체 스크립트에 적용됩니다. 다음은 예제입니다:
"use strict";
function doSomething() {
x = 10; // 이 작업은 오류를 발생시킵니다
}
doSomething();
이 경우, x = 10
이 함수 내에 있지만, 전체 스크립트에 대해 엄격 모드가 활성화되어 있기 때문에 오류가 발생합니다.
지역 범위에서의 엄격 모드
특정 함수 내에서도 엄격 모드를 사용할 수 있습니다. 이는 대형 프로젝트에서 특정 부분에만 엄격 모드를 적용하고 싶을 때 유용합니다. 다음은 그 방법입니다:
function strictFunction() {
"use strict";
// 이 함수는 엄격 모드입니다
y = 20; // 이 작업은 오류를 발생시킵니다
}
function nonStrictFunction() {
// 이 함수는 엄격 모드가 아닙니다
z = 30; // 이 작업은 오류를 발생시키지 않습니다
}
strictFunction();
nonStrictFunction();
이 예제에서, strictFunction()
은 오류를 발생시키지만, nonStrictFunction()
은 그렇지 않습니다. 마치 집의 특정 방에 "신발과 셔츠 없이 입장 불가" 표지를 달아둔 것과 같습니다!
엄격 모드에서 저지르지 말아야 할 실수
이제 엄격 모드가 잡아내는 일반적인 실수에 대해 이야기해 보겠습니다. 이를 엄격 모드의 "하지 말아야 할 것"으로 생각해 보세요:
실수 | 예제 | 설명 |
---|---|---|
선언되지 않은 변수 사용 | x = 3.14; |
변수는 let , const , 또는 var 로 선언해야 합니다 |
변수에 delete 사용 | delete x; |
변수, 함수, 인자를 삭제할 수 없습니다 |
중복된 매개변수 이름 사용 | function f(a, a, b) {} |
중복된 매개변수 이름은 허용되지 않습니다 |
8진수 문법 사용 | var n = 023; |
8진수 문법은 허용되지 않습니다 |
읽기 전용 속성에 쓰기 | var obj = {}; Object.defineProperty(obj, "x", { value: 0, writable: false }); obj.x = 3.14; |
읽기 전용 속성에 쓰기는 불가능합니다 |
with 문 사용 | with (Math) { x = cos(2); } |
with 문은 허용되지 않습니다 |
다음은 이 규칙 중 일부를 보여주는 더 복잡한 예제입니다:
"use strict";
function calculateArea(radius, radius) {
// 중복된 매개변수 이름 - 이 작업은 오류를 발생시킵니다
with (Math) {
// with 문 사용 - 이 작업은 오류를 발생시킵니다
return PI * radius * radius;
}
}
var result = calculateArea(5, 5);
console.log(result);
이 코드는 두 가지 문제가 있습니다: 중복된 매개변수 이름과 with
문 사용. 엄격 모드는 두 가지 모두를 잡아내어 오류를 발생시키며, 더 나은, 유지보수 가능한 코드를 작성하는 데 도움을 줍니다.
결론적으로, 엄격 모드는 코드를 작성할 때 책임감 있고 약간 까다로운 친구처럼 보일 수 있지만, 더 나은 자바스크립트 개발자가 되도록 도와줍니다. 그러므로 엄격 모드를 환영하고 사용하며, 코드 품질을 높이세요!
기억하세요, 프로그래밍의 세계에서 엄격함은 무례함이 아니라 - 명확하고 정확하며 오류가 없는 것을 의미합니다. 그러므로 엄격하게 코드를 작성해 나가세요, 친구들이여!
Credits: Image by storyset