JavaScript의 엄격 모드
4032 단어 webdevjavascript
그러나 이 언어는 보다 복잡한 맥락에서 사용되기 시작했고 "부주의함"이 문제가 되기 시작했습니다. 복잡한 소프트웨어는 유지 관리가 더 쉽기 때문에 언어를 더 제한해야 합니다.
이러한 이유로 언어에 새로운 모드가 도입되었는데 이것이 엄격 모드입니다.
엄격 모드에 액세스하는 방법
엄격 모드를 활성화하는 한 가지 방법은 JavaScript 파일의 첫 번째 줄에 문자열
"use strict";
을 넣는 것입니다.또 다른 방법은 기본 JavaScript 모듈을 사용하는 것입니다. Node.js를 사용하는 경우 모듈은 파일 확장명이 .js가 아닌 .mjs인 JS 파일입니다. 브라우저에서 속성
type="module"
을 <script>
태그에 추가해야 합니다.클래스 내부의 코드도 항상 엄격 모드에 있습니다.
엄격 모드에서 변경되는 사항
이전 모드(종종 "sloppy 모드"라고 하지만 공식 이름은 아님)에서
const
, let
또는 var
로 선언하지 않고 변수를 만들 수 있습니다.name = "Stephanie";
console.log(`Her name is ${name}`);
이전 sloppy 모드에서는 첫 번째 줄이 정확하며
name
라는 새 변수를 만듭니다. 그러나 엄격 모드에서는 오류가 발생합니다.선언하지 않고 변수를 생성할 때의 문제점은 기존 변수를 재할당했는데 오타를 추가하면 나도 모르게 새로운 변수를 생성하게 된다는 점입니다.
sloppy 모드에서 많은 오류가 깔개 아래로 휩쓸렸습니다. 작동하지 않았지만 코드는 아무 일도 없었던 것처럼 계속 실행되었습니다. 예를 들어:
var undefined = true;
var NaN = 25;
delete Object.prototype;
위의 예에서 언어의 내장 객체와 키워드를 만지작거리고 있습니다. 변경하거나 삭제할 수 없지만 sloppy 모드에서는 이러한 변경 사항이 무시됩니다. 엄격 모드에서 이 코드를 실행하면 오류가 발생합니다.
또 다른 큰 차이점은 the
this
keyboard에서 발생합니다. 객체의 메서드가 아닌 함수를 호출할 때 엄격 모드에서 this
값은 undefined
입니다. "조잡한 모드"에서 this
의 값은 전역 개체였습니다(즉, 브라우저에서 window
개체)."use strict";
function logThis() {
console.log(this);
}
logThis(); // Outputs undefined
// sloppy mode
function logThis() {
console.log(this);
}
logThis(); // Outputs [object Window]
사용 시기
요즘에는 항상 엄격 모드를 사용하는 것이 좋습니다. 유일한 주의 사항은 사용하지 않는 이전 코드를 처리하는 경우 가능한 모든 오류를 수정할 때까지 반드시 엄격 모드로 전환해서는 안 된다는 것입니다.
이 기사가 마음에 드셨다면 제 JavaScript 뉴스레터도 마음에 드실 것입니다.
격주 월요일마다 JavaScript 기술 수준을 높일 수 있는 쉽고 실행 가능한 단계를 보내드립니다. 확인해보세요: https://nicozerpa.com/newsletter
Reference
이 문제에 관하여(JavaScript의 엄격 모드), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nicozerpa/strict-mode-in-javascript-22gd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)