JavaScript에서 엄격 모드란 무엇입니까?

문제를 제거하기 위해 도구를 사용해보십시오

JavaScript에서 엄격 모드란 무엇입니까?

이 엄격한 컨텍스트는 특정 작업이 수행되는 것을 방지하고 더 많은 예외를 발생시킵니다. 문은 strict를 사용합니다. 축소되고 안전한 기능 집합인 Strict 모드를 사용하도록 브라우저에 지시합니다. 자바스크립트 .



'엄격한 사용' 사용의 이점

엄격 모드는 일반 JavaScript 의미 체계를 몇 가지 변경합니다.






  • 엄격 모드는 오류를 발생시키도록 변경하여 일부 JavaScript 자동 오류를 제거합니다.
  • 엄격 모드는 JavaScript 엔진이 최적화를 수행하기 어렵게 만드는 실수를 수정합니다. 엄격 모드 코드는 엄격 모드가 아닌 동일한 코드보다 더 빠르게 실행되도록 만들 수 있습니다.
  • 엄격 모드는 다음 버전에서 정의될 수 있는 일부 구문을 금지합니다. ECMA 스크립트 .
  • 비교적 안전하지 않은 작업(예: 전역 개체에 대한 액세스 권한 획득)이 수행될 때 오류를 방지하거나 throw합니다.
  • 혼란스럽거나 잘못 생각한 기능을 비활성화합니다.
  • 엄격 모드를 사용하면 보안 JavaScript를 더 쉽게 작성할 수 있습니다.

엄격 모드를 사용하는 방법

  • Strict 모드는 두 가지 방법으로 사용할 수 있습니다. 전체 스크립트의 전역 범위에서 사용하고 개별 기능에 적용할 수 있습니다. {} 중괄호로 묶인 블록 문에서는 엄격 모드가 작동하지 않습니다.

전체 스크립트에 엄격한 모드 사용

  • 전체 스크립트에 대해 엄격 모드를 호출하려면 정확한 문을 사용하십시오. (또는 '엄격한 사용';) 다른 문장 앞에.
// Whole-script strict mode syntax 'use strict'; let v = 'strict mode script!'; 

참고: 이 구문에는 흐름이 있습니다. 충돌하지 않는 스크립트를 맹목적으로 연결할 수는 없습니다. 엄격 모드 스크립트를 비 엄격 모드 스크립트와 연결하는 것을 고려하십시오. 전체 연결이 엄격해 보입니다! 반대도 마찬가지입니다. non-strict와 strict는 non-strict로 보입니다. 엄격 모드 스크립트를 서로 연결하는 것은 괜찮고 비엄격 모드 스크립트를 연결하는 것도 괜찮습니다. 엄격한 스크립트와 그렇지 않은 스크립트만 연결하는 것은 문제가 됩니다. 따라서 기능별로 엄격 모드를 활성화하는 것이 좋습니다(적어도 전환 기간 동안).



전체 스크립트에 엄격한 모드 사용

마찬가지로, 함수에 대해 엄격 모드를 호출하려면 정확한 문을 사용하여 엄격하게 입력하십시오. (또는 'use strict';) 함수 본문에서 다른 명령문보다 먼저 사용합니다.



function strict() { 

// Function-level strict mode syntax
‘use strict’;






function nested() { return ‘Javascript on GeeksforGeeks’; }

return 'strict mode function! ' + nested();
}
function notStrict() { return non strict function; }

엄격 모드 사용의 예

일반 JavaScript에서 변수 이름을 잘못 입력하면 새 전역 변수가 생성됩니다. 엄격 모드에서는 오류가 발생하여 실수로 전역 변수를 생성할 수 없습니다.

엄격 모드를 사용하여 변수를 선언하지 않고 사용하는 것을 허용하지 마십시오.

// 변수를 선언하지 않고 사용하는 것은 허용되지 않습니다:

 ‘use strict’;  
x = 3.14; // will throw an error

산출:

// Objects are variables too.  
// Using an object, without declaring it, is not allowed:
‘use script’;
x = {p1:10, p2:20}; // will throw an error

산출:

변수(또는 개체) 및 함수 삭제는 허용되지 않습니다.

‘use strict’;  
let x = 3.14;
// Deleting a function is also not allowed
‘use strict’;
function x(p1, p2) {};
delete x; // will throw an error

산출:

매개변수 이름 복제는 허용되지 않습니다.

‘use strict’;  
function x(p1, p1) {}; // will throw an error

산출:

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

유튜브 자동댓글봇
‘use strict’;  
let x = 010; // will throw an error

산출:

이스케이프 문자는 허용되지 않습니다.

‘use strict’;  
let x = 10; // will throw an error

산출:

읽기 전용 속성에 대한 쓰기는 허용되지 않습니다.

‘use strict’;  
let obj = {};
Object.defineProperty(obj, x, {value:0, writable:false});
obj.x = 3.14; //will throw an error

산출:

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

‘use strict’;  
let obj = {get x() {return 0} };
obj.x = 3.14; // will throw an error

산출:

파이썬에서 숫자의 제곱

삭제할 수 없는 속성은 삭제할 수 없습니다.

‘use strict’;  
delete Object.prototype; // will throw an error

산출:

문자열 eval은 변수로 사용할 수 없습니다.

‘use strict’;  
let eval = 3.14; // will throw an error

산출:

문자열 인수는 변수로 사용할 수 없습니다.

‘use strict’;  
let arguments = 3.14; // will throw an error

산출:

with 문은 허용되지 않습니다.

‘use strict’;  
with (Math){x = cos(2)}; // will throw an error

산출:

f()와 같은 함수 호출에서 this 값은 전역 객체였습니다. 엄격 모드에서는 이제 정의되지 않습니다.

일반 JavaScript에서 개발자는 쓰기 불가능한 속성에 값을 할당하는 오류 피드백을 받지 않습니다.

읽어 주셔서 감사합니다

이 게시물이 마음에 들면 모든 프로그래밍 친구들과 공유/좋아요를 눌러주세요!

우리를 따라 오세요 페이스북 | 트위터

JavaScript에 대한 추가 읽기

완전한 JavaScript 과정 2019: 실제 프로젝트 빌드!

Vue JS 2 - 전체 가이드(Vue 라우터 및 Vuex 포함)

JavaScript Bootcamp - 실제 응용 프로그램 빌드

웹 개발자 부트캠프

JavaScript 프로그래밍 튜토리얼 - 초보자를 위한 전체 JavaScript 코스

☞ 모든 JavaScript 개발자가 알아야 할 새로운 ES2019 기능

☞ 2019년에 사용할 최고의 JavaScript 프레임워크, 라이브러리 및 도구

React vs Angular vs Vue.js 예제

☞ Microfrontends — JavaScript 프레임워크를 함께 연결(React, Angular, Vue 등)

Anime.js로 웹 애니메이션 만들기

Ember.js 대 Vue.js - JavaScript 프레임워크가 귀하에게 더 잘 맞는 것

☞ JavaScript 프레임워크가 여전히 필요한가요?

#자바스크립트 #웹개발