>  기사  >  웹 프론트엔드  >  JS 엄격 모드를 사용하는 방법

JS 엄격 모드를 사용하는 방법

php中世界最好的语言
php中世界最好的语言원래의
2018-04-12 16:19:302041검색

이번에는 JS 엄격 모드 사용 방법과 JS 엄격 모드 사용 시 주의사항에 대해 알려드리겠습니다. 실제 사례를 살펴보겠습니다.

소위 엄격 모드는 실제로 어떤 변수에도 할당되지 않는 문자열입니다. "use strict"

이 프롬프트가 전역 범위에서 제공되면 전체 스크립트는 엄격 모드가 됩니다. 기능에서만 엄격 모드를 켤 수도 있습니다

1. 엄격 모드에는 전역 변수가 없습니다

a="테스트"

엄격 모드에서는 오류가 보고되지만 비엄격 모드에서는 정상입니다

2. 변수 삭제

var

  • 에는 세 가지 선언 상황이 있습니다. var에 선언된 전역 변수

  • var

  • eval()에 선언된 지역 변수

에 선언된 전역 변수 첫 번째와 두 번째 사례는 삭제로 삭제할 수 없습니다.

우선 첫 번째 경우에 선언한 전역 객체는 윈도우의 속성임에도 불구하고 이 속성은 configurable=false이므로 삭제할 수 없습니다

두 번째 경우에는 첨부된 개체가 누구인지조차 알 수 없는 경우가 있습니다. 세 번째 경우인 eval()에 대해서는 나중에 설명하겠습니다.

주제로 돌아갑니다. 즉, 비엄격 모드에서는 변수를 삭제할 수 있지만 실패하고 false를 반환합니다.

엄격 모드에서 변수를 삭제하면 오류가 보고됩니다.

3.Object

작업 개체는 다음 상황에서 오류를 보고합니다

    읽기 전용 속성에 값을 할당하면 오류가 보고됩니다.
  1. 구성할 수 없는 속성에 대해 삭제를 사용하면 오류가 보고됩니다.
  2. 확장할 수 없는 개체에 속성을 추가하면 오류가 보고됩니다.
  3. 사용할 때 객체 리터럴, 속성 이름은 고유해야 합니다. 예:
  4. var person={
      name:"1",
      name:"2"
    }
  5. 비엄격 모드에서는 두 번째 값이 기본적으로 사용되며, 엄격 모드에서는 오류가 보고됩니다.

4. 기능

엄격 모드에서는

함수 매개변수

이름이 고유해야 합니다

function(n,n){
  // todo
}
비엄격 모드에서는 이 함수 선언이 오류를 보고하지 않습니다. 두 번째 매개변수만 매개변수 이름을 통해 액세스할 수 있으며 첫 번째 매개변수는 인수를 통해 액세스해야 합니다.

두 모드의 인수도 다릅니다

비엄격 모드에서는 명명된 매개변수의 값을 수정하면 인수 개체에 반영됩니다. 엄격 모드에서는 두 값이 독립적입니다.

Arguments.callee(함수 자체 참조) 및 Arguments.caller(호출 함수 참조)가 제거됩니다.

엄격 모드에서는 함수 이름에 js

예약어

를 사용할 수 없습니다. **엄격 모드에서는 함수는 스크립트의 최상위 수준과 함수 내부에서만 선언할 수 있습니다. if 문에서 함수를 선언하면 구문 오류가 발생합니다

. **

rreee 5.이것

비엄격 모드에서 함수

의 apply(), call()을 사용하면 전달된 null 또는 정의되지 않은 값이 전역 개체로 변환됩니다. 엄격 모드에서 함수의 this는 지정된 값에 관계없이 항상 지정된 값입니다.

if(true){
  function(){
   // 严格模式下报错
}
}

이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 믿습니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!

추천 도서:

vue 글로벌 등록 및 로컬 등록 사용법에 대한 자세한 설명

readline을 사용하여 한 줄씩 내용을 읽고 쓰는 방법

위 내용은 JS 엄격 모드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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