JavaScript - 엄격한 모드

"엄격한 사용"; JavaScript 코드가 "엄격한 모드"에서 실행되어야 함을 정의합니다.
왜 엄격한 모드인가?
엄격 모드를 사용하면 "보안"JavaScript를 더 쉽게 작성할 수 있습니다.

엄격 모드는 이전에 허용된 "잘못된 구문"을 실제 오류로 변경합니다.

예를 들어, 일반 JavaScript에서 변수 이름을 잘못 입력하면 새 전역 변수가 생성됩니다. 엄격 모드에서는 오류가 발생하여 실수로 전역 변수를 생성할 수 없습니다.

일반 JavaScript에서 개발자는 쓰기 불가능한 속성에 값을 할당하는 오류 피드백을 받지 않습니다.

엄격 모드에서 쓰기 불가능 속성, getter 전용 속성, 존재하지 않는 속성, 존재하지 않는 변수 또는 존재하지 않는 객체에 대한 모든 할당은 오류를 표시합니다.

"use strict"지시문은 ECMAScript 버전 5에서 새로 추가되었습니다. 이것은 문이 아니라 적절한 표현으로, 이전 버전의 JavaScript에서는 무시되었습니다.

이것의 목적은 코드가 "엄격한 모드"에서만 실행되어야 함을 나타내는 것입니다.

엄격 모드에서는 예를 들어 선언되지 않은 변수를 사용할 수 없습니다.

모든 최신 브라우저는 Internet Explorer 9 이하를 제외한 "엄격한 사용"을 지원합니다. Google 크롬, 파이어폭스, 오페라 등

엄격 모드를 선언하는 동안:

엄격한 모드는 "use strict"를 추가하여 선언됩니다. 스크립트나 함수의 시작 부분에

전역 범위 의미를 가지며 코드의 모든 행은 엄격 모드에서 실행됩니다.

예를 들어:

"use strict";
x = 3.14;       // This will cause an error because x is not declared



또 다른 유사한 예:

"use strict";
myFunction();

function myFunction() {
  y = 3.14;   // This will also cause an error because y is not declared
}




x = 3.14;       // This will not cause an error.
myFunction();

function myFunction() {
  "use strict";
  y = 3.14;   // This will cause an error
}


선언하지 않고 객체를 사용하는 것은 허용되지 않습니다.

"use strict";
x = {p1:10, p2:20}; 
     // This will cause an error


변수(또는 개체) 삭제는 허용되지 않습니다.

"use strict";
let x = 3.14;
delete x;                // This will cause an error


비슷하게,
매개변수 이름 복제는 허용되지 않습니다.
8진수 숫자 리터럴은 허용되지 않습니다.
8진 이스케이프 문자는 허용되지 않습니다.
읽기 전용 속성에 대한 쓰기는 허용되지 않습니다.
인수라는 단어는 변수로 사용할 수 없습니다.
with 문은 허용되지 않습니다.

좋은 웹페이지 즐겨찾기