후레임의 프로그래밍
JavaScript에서 "use strict"은 무엇을 하며 그 이유는 무엇입니까? 본문
질문
최근 Crockford의 JSLint 를 통해 일부 JavaScript 코드를 실행했는데 다음과 같은 오류가 발생했습니다.
1 행 문자 1의 문제 : "use strict"문이 누락되었습니다.
검색을하면서 어떤 사람들이 자바 스크립트 코드에 "use strict";
를 추가한다는 것을 깨달았습니다. 해당 선언문을 추가하면 오류가 더 이상 나타나지 않습니다. 안타깝게도 Google은이 선언문 뒤에 숨겨진 많은 역사를 밝히지 않았습니다. 확실히 그것은 브라우저가 자바 스크립트를 해석하는 방법과 관련이 있을 것입니다. 하지만 그 효과가 무엇인지 모르겠습니다.
"use strict";
는 무엇을 의미하며, 그것이 의미하는 바가 무엇이며 여전히 관련이 있습니까?
현재 브라우저가 "use strict";
선언문에 응답합니까 아니면 향후 사용을 위한 것입니까?
답변
Javascript Strict Mode에 대한이 기사가 흥미로울 수 있습니다. John Resig-ECMAScript 5 Strict Mode, JSON 등
흥미로운 부분을 인용하려면 :
strict 모드는 ECMAScript 5의 새로운 기능으로, "strict"한 운영 상황에서 프로그램 또는 기능을 배치 할 수 있습니다. 이 strict 컨텍스트는 특정 작업이 수행되는 것을 방지하고 더 많은 예외를 발생시킵니다.
및 :
strict 모드는 다음 두 가지 방법으로 도움이됩니다.
- 일반적인 코딩 문제를 포착하여 예외를 발생시킵니다.
- 전역 개체에 대한 액세스 권한 획득과 같은 상대적으로 "안전하지 않은"작업이 수행 될 때 오류를 방지하거나 발생시킵니다.
- 혼란 스럽거나 잘못 생각한 기능을 비활성화합니다.
또한 전체 파일에 "strict 모드"를 적용 할 수 있습니다 ... 또는 특정 기능에만 사용할 수 있습니다. (John Resig의 기사에서 인용 됨) :
// Non-strict code...
(function(){
"use strict";
// Define your library strictly...
})();
// Non-strict code...
이전 코드와 새 코드를 혼합해야하는 경우 유용 할 수 있습니다.;-)
그래서 Perl에서 사용할 수있는 "use strict"
와 약간 비슷하다고 생각합니다 (따라서 이름은?) : 이렇게하면 오류를 줄일 수 있습니다. 파손으로 이어질 수있는 더 많은 것을 감지합니다.
strict 모드는 이제 모든 주요 브라우저에서 지원 됩니다.
기본 ECMAScript 모듈 (import
및 export
문) 및 ES6 클래스, strict 모드는 항상 활성화되어 있으며 비활성화 할 수 없습니다.
'스택오버플로우(Stack Overflow)' 카테고리의 다른 글
JavaScript closures는 어떻게 작동합니까? (0) | 2020.10.26 |
---|---|
푸시되지 않은 기존 커밋 메시지를 수정하는 방법은 무엇입니까? (0) | 2020.10.26 |
"yield"키워드의 기능은 무엇입니까? (0) | 2020.10.26 |
다른 웹 페이지로 어떻게 리디렉션합니까? (0) | 2020.10.25 |
HTML은 왜 "chucknorris"가 색상이라고 생각합니까? (0) | 2020.10.25 |