>  기사  >  웹 프론트엔드  >  JavaScript의 '엄격한 사용' 엄격 모드에 대한 자세한 설명

JavaScript의 '엄격한 사용' 엄격 모드에 대한 자세한 설명

小云云
小云云원래의
2018-03-14 18:06:071408검색


ECMAscript 5는 일반 실행 모드 외에도 두 번째 실행 모드인 "엄격 모드"를 추가합니다. 이름에서 알 수 있듯이 이 모드는 Javascript가 더 엄격한 조건에서 실행되도록 합니다.

엄격 모드를 사용하는 이유

  • Javascript 구문의 불합리하고 느슨한 측면을 제거하고 이상한 동작을 줄입니다.

  • 코드 실행의 안전하지 않은 측면을 제거하고 코드 실행의 안전성을 보장합니다.

  • 컴파일러 개선 효율성을 높이고 실행 속도를 높이세요.

  • 향후 새로운 버전의 Javascript를 위한 길을 열어주세요.

"엄격 모드"는 Javascript의 보다 합리적이고 안전하며 보다 엄격한 개발 방향을 반영합니다. IE 10을 포함한 주류 ​​브라우저는 이미 이를 지원하고 있으며 많은 대규모 프로젝트에서 이를 완전히 수용하기 시작했습니다.

반면에 "엄격 모드"에서는 동일한 코드의 실행 결과가 다를 수 있습니다. "일반 모드"에서 실행될 수 있는 일부 명령문은 "엄격 모드"에서 실행되지 않습니다. 이러한 내용을 마스터하면 Javascript를 더 자세히 이해하고 더 나은 프로그래머가 될 수 있습니다.

플래그 입력

"use strict";

호출 방법

단일 스크립트의 경우

 <script>    &quot;use strict&quot;;
    console.log("这是严格模式。");
  </script>

단일 함수의 경우

function strict(){    "use strict";
    return "这是严格模式。";
  }
  function notStrict() {    return "这是正常模式。";
  }

구문 및 동작 변경

Strict 모드에서는 Javascript의 구문과 동작이 일부 변경되었습니다.

전역 변수의 명시적 선언

일반 모드에서 변수에 선언하지 않고 값을 할당하면 기본값이 전역 변수가 됩니다. 엄격 모드에서는 이러한 사용이 금지되며 전역 변수는 명시적으로 선언되어야 합니다.

"use strict";
  v = 1; // 报错,v未声明  for(i = 0; i < 2; i++) { // 报错,i未声明  }

따라서 strict 모드에서는 변수를 사용하기 전에 var 명령으로 선언해야 합니다.

this 키워드는 전역 객체를 가리키는 것이 금지되어 있습니다

function f(){    return !this;
  } 
  // 返回false,因为"this"指向全局对象,"!this"就是false  function f(){     "use strict";
    return !this;
  } 
  // 返回true,因为严格模式下,this的值为undefined,所以"!this"为true。

따라서 생성자를 사용할 때 new를 추가하는 것을 잊어버리면 this는 더 이상 전역 객체를 가리키지 않지만 오류가 보고됩니다.

function f(){    "use strict";
    this.a = 1;
  };
  f();// 报错,this未定义

변수 삭제는 금지되어 있습니다.

Strict 모드에서는 변수를 삭제할 수 없습니다. 구성 가능 항목이 true로 설정된 개체 속성만 삭제할 수 있습니다.

"use strict";
  var x;
  delete x; // 语法错误  var o = Object.create(null, {'x': {
      value: 1,
      configurable: true  }});
  delete o.x; // 删除成功

객체에는 중복된 이름이 있는 속성이 있을 수 없습니다.

일반 모드에서 객체에 중복된 이름이 있는 여러 속성이 있는 경우 마지막으로 할당된 속성이 이전 값을 덮어씁니다. 엄격 모드에서는 구문 오류입니다.

"use strict";
  var o = {
    p: 1,
    p: 2  }; // 语法错误

함수에는 동일한 이름의 매개변수가 있을 수 없습니다.

일반 모드에서 함수에 동일한 이름의 매개변수가 여러 개 있는 경우 인수[i]를 사용하여 읽을 수 있습니다. 엄격 모드에서는 구문 오류입니다.

 "use strict";
  function f(a, a, b) { // 语法错误    return ;
  }

관련 추천:

JS 엄격 모드 예시 설명

JavaScript의 엄격 모드에 대한 자세한 소개

JavaScript 엄격 모드_javascript 기술에 대한 자세한 설명

위 내용은 JavaScript의 '엄격한 사용' 엄격 모드에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.