JavaScript의 엄격한 모드

ES5에 포함된 새로운 기능입니다.
"엄격한 모드"에서 코드를 실행하는 데 사용됩니다. 스크립트나 함수의 시작 부분에 'use strict'를 추가하여 이를 달성할 수 있습니다. 할당 아래의 코드만 엄격 모드에 있습니다.

스크립트 시작 부분에 선언하면 코드에서 전역적으로 사용할 수 있습니다(함수 내부에서도).
함수 내부에서 선언하면 함수 내부에서 로컬로 사용할 수 있습니다.

엄격 모드는 몇 가지 방법으로 도움이 됩니다.


  • 예외를 던지는 몇 가지 일반적인 코딩 실수를 포착합니다.
  • 엄격 모드는 오류를 발생시키도록 변경하여 일부 JavaScript 자동 오류를 제거합니다.
  • 상대적으로 "안전하지 않은"작업이 수행될 때(예: 전역 개체에 대한 액세스 권한 획득) 오류를 방지하거나 발생시킵니다.
  • 혼란스럽거나 잘못 생각한 기능을 비활성화합니다.
  • 엄격 모드를 사용하면 "보안"JavaScript를 더 쉽게 작성할 수 있습니다.

  • 기능 목록


  • 전역 변수를 허용하지 않습니다(객체 리터럴도 포함).

  • x=20;
    


  • 예약된 키워드(eval 및 인수 포함)에 대한 할당은 허용되지 않습니다.

  • var undefined = 5; // throws a TypeError
    var Infinity = 5; // throws a TypeError
    


  • 읽기 전용 속성에 쓰는 것은 허용되지 않습니다.

  • var obj = {};
    Object.defineProperty(obj, "x", {value:0, writable: false});
    obj.x = 3.14;  // This will cause an error
    


  • get-only 속성에 대한 쓰기는 허용되지 않습니다.

  • var obj = {get x() {return 0} };
    obj.x = 3.14;            // This will cause an error
    


  • 변수, 객체, 기능 삭제는 허용되지 않습니다.

  • delete obj //SyntaxError: Delete of an unqualified identifier in strict mode
    


  • 삭제할 수 없는 속성을 삭제하려고 하면 오류가 발생합니다.

  • delete Object.prototype //throws error
    


  • 개체 리터럴의 모든 속성 이름은 고유해야 합니다.

  • var x = {x1: "1", x1: "2"} //throws error
    


  • 함수 매개변수 이름은 고유해야 합니다.

  • function sum (x, x) {...}//throw error
    


  • 8진수 숫자 리터럴은 허용되지 않습니다.

  • var x = 010; // This will cause an error
    


  • with 문은 허용되지 않습니다:

  • with (Math){x = cos(2)}; // This will cause an error
    


  • 엄격 모드의 eval은 새 변수를 도입하지 않습니다.

  • eval ("var x = 2");
    


  • 일반 이름을 삭제하면 오류가 발생합니다.

  • var x
    delete x;
    


    몇 가지 예/관찰




    function func() {
        "use strict"
        y=100; //this will not throw an error till the function is not called
    }
    



    "use strict"
    function func() {
        y=100; //this will not throw an error till the function is not called
    }
    



    function func() {
        myGlobal = 5  //this will NOT give error
      }
    
      (function() {
        "use strict";
        func()
      })()
    
      function func_strict() {
        "use strict";
        myGlobal = 5 //this will give error
      }
    


    이 게시물이 도움이 되었기를 바랍니다.
    정말로, 우리를 평가하고 의견에 귀하의 리뷰를 알려주십시오.

    그게 내 사랑하는 개발자입니다 :)

    마음에 드셨다면 좋아요 👍

    고맙습니다,
    캡스코드
    www.capscode.in

    좋은 웹페이지 즐겨찾기