이번에는 JS 엄격 모드 사용 방법과 JS 엄격 모드 사용 시 주의사항에 대해 알려드리겠습니다. 실제 사례를 살펴보겠습니다.
소위 엄격 모드는 실제로 어떤 변수에도 할당되지 않는 문자열입니다. "use strict"
이 프롬프트가 전역 범위에서 제공되면 전체 스크립트는 엄격 모드가 됩니다. 기능에서만 엄격 모드를 켤 수도 있습니다
1. 엄격 모드에는 전역 변수가 없습니다
a="테스트"
엄격 모드에서는 오류가 보고되지만 비엄격 모드에서는 정상입니다
2. 변수 삭제
var
에는 세 가지 선언 상황이 있습니다. var에 선언된 전역 변수
에 선언된 전역 변수 첫 번째와 두 번째 사례는 삭제로 삭제할 수 없습니다.
우선 첫 번째 경우에 선언한 전역 객체는 윈도우의 속성임에도 불구하고 이 속성은 configurable=false이므로 삭제할 수 없습니다
두 번째 경우에는 첨부된 개체가 누구인지조차 알 수 없는 경우가 있습니다. 세 번째 경우인 eval()에 대해서는 나중에 설명하겠습니다.
주제로 돌아갑니다. 즉, 비엄격 모드에서는 변수를 삭제할 수 있지만 실패하고 false를 반환합니다.
엄격 모드에서 변수를 삭제하면 오류가 보고됩니다.
3.Object
작업 개체는 다음 상황에서 오류를 보고합니다
var person={ name:"1", name:"2" }
4. 기능
엄격 모드에서는
함수 매개변수이름이 고유해야 합니다function(n,n){
// todo
}
비엄격 모드에서는 이 함수 선언이 오류를 보고하지 않습니다. 두 번째 매개변수만 매개변수 이름을 통해 액세스할 수 있으며 첫 번째 매개변수는 인수를 통해 액세스해야 합니다.
두 모드의 인수도 다릅니다
비엄격 모드에서는 명명된 매개변수의 값을 수정하면 인수 개체에 반영됩니다. 엄격 모드에서는 두 값이 독립적입니다.
Arguments.callee(함수 자체 참조) 및 Arguments.caller(호출 함수 참조)가 제거됩니다.
엄격 모드에서는 함수 이름에 js
예약어를 사용할 수 없습니다. **엄격 모드에서는 함수는 스크립트의 최상위 수준과 함수 내부에서만 선언할 수 있습니다. if 문에서 함수를 선언하면 구문 오류가 발생합니다
. ** 비엄격 모드에서 함수의 apply(), call()을 사용하면 전달된 null 또는 정의되지 않은 값이 전역 개체로 변환됩니다. 엄격 모드에서 함수의 this는 지정된 값에 관계없이 항상 지정된 값입니다. if(true){
function(){
// 严格模式下报错
}
}
이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 믿습니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 도서:
vue 글로벌 등록 및 로컬 등록 사용법에 대한 자세한 설명
위 내용은 JS 엄격 모드를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!