스택큐힙리스트

"use strict"는 JavaScript에서 무엇을 하는 것이며 그 이유는 무엇인가요? 본문

카테고리 없음

"use strict"는 JavaScript에서 무엇을 하는 것이며 그 이유는 무엇인가요?

스택큐힙리스트 2024. 1. 9. 18:57
반응형

요즘 나는 Crockford의 JSLint을 통해 나의 JavaScript 코드를 몇 개 실행했고, 다음과 같은 오류가 발생했습니다:



1행 1번째 문자에서 문제 발생: use strict 문이 누락되었습니다.



조금 검색을 해보니, 어떤 사람들은 자신들의 JavaScript 코드에 use strict;를 추가한다는 것을 알게 되었습니다. 해당 문을 추가한 후에는 오류가 더 이상 나타나지 않았습니다. 불행히도, Google은 이 문자 문장의 역사에 대해 많이 공개하지 않았습니다. 확실히 이는 브라우저에서 JavaScript가 해석되는 방식과 어떤 영향을 미칠지에 대한 것일 것입니다만, 제게는 이러한 효과가 무엇인지 전혀 알 수 없습니다.


그래서 use strict;은 무엇을 의미하며, 어떤 암시를 내포하고 있는지, 그리고 현재 브라우저 중 어떤 것들이 이러한 문자 문장에 대응하는지 아직 내포하고 있는지 궁금합니다.

답변 1


Strict Mode는 ECMAScript 5에서 제공되는 새로운 기능으로, 프로그램 또는 함수를 엄격한 운영 컨텍스트에 놓을 수 있게 해줍니다. 이 엄격한 컨텍스트는 특정 동작을 방지하고 더 많은 예외를 발생시킵니다.



그리고:



Strict Mode는 몇 가지 방식으로 도움을 줍니다:



  • 일부 일반적인 코딩 오류를 잡아 예외를 발생시킵니다.

  • 상대적으로 안전하지 않은 동작이 수행되는 경우를 방지하거나 오류를 발생시킵니다 (예: 전역 객체에 접근).

  • 혼동스러운 기능 또는 잘못된 기능을 비활성화합니다.



또한 Strict Mode를 파일 전체에 적용할 수도 있으며... 또는 특정 함수에만 사용할 수 있습니다 (John Resig의 문서에서 인용):


// Non-strict code...
(function(){
use strict;
// 엄격한 모드로 라이브러리 정의...
})();
// Non-strict code...

오래된 코드와 새로운 코드를 혼합해야하는 경우 유용할 수 있습니다 ;-)


그래서, Perl에서 사용할 수있는 use strict와 비슷한 기능이라고 생각합니다 (따라서 이름이 그렇습니다.): 더 많은 오류를 검출하여 오류가 발생할 수있는 요소를 줄이는 데 도움이됩니다.


모든 주요 브라우저에서 Strict 모드를 지원하고 있습니다..

답변 2

사용 엄격은 JavaScript에서 어떤 역할을 하며 이에 대한 배경은 무엇일까요?
사용 엄격은 JavaScript에서 스크립트의 전체 또는 개별 함수에 엄격한 코드 작성 규칙을 적용하는데 사용됩니다. 이 표현은 스크립트의 최상단에 다음과 같이 작성하여 활성화할 수 있습니다.
use strict;
사용 엄격은 자바스크립트 엔진에게 코드를 더 나은 방식으로 처리하도록 지시하는 역할을 합니다. 몇 가지 주요한 변화를 포함하여 효과적으로 코드 실행을 제한하고 오류를 포착하기 쉽게 만듭니다. 이는 다음과 같은 세 가지 주요 이유로 도입되었습니다.
1. 에러 감지: 사용 엄격 모드를 활성화하면 JavaScript 엔진은 기본적으로 조금 더 엄격한 오류 감지를 수행합니다. 예를 들어, 선언되지 않은 변수를 사용하려고 하는 경우 오류가 발생하고, 키워드를 잘못 사용할 경우 오류가 발생합니다. 이는 오타나 실수로 인한 버그를 쉽게 감지할 수 있도록 돕고 프로그래밍의 안정성을 향상시킵니다.
2. 암시적 글로벌 변수 방지: 일반적으로 JavaScript에서 변수를 선언하지 않고 값을 할당하면 해당 변수는 전역 범위에 암시적으로 생성됩니다. 그러나 사용 엄격 모드를 사용하면 이러한 암시적 전역 변수를 막을 수 있으므로 변수의 유효 범위를 더 명시적으로 관리할 수 있습니다. 이는 변수 충돌과 같은 문제를 예방하고 코드의 가독성과 유지 보수성을 향상시킵니다.
3. 안전한 ECMAScript 버전 사용: 사용 엄격 모드는 자바스크립트 엔진을 ECMAScript 최신 버전에 최대한 가깝게 만듭니다. 예를 들어, ECMAScript 5 부터는 사용 엄격 모드에서만 사용할 수 있는 새로운 기능과 키워드가 도입되었습니다. 이로 인해 개발자들은 최신 기능을 활용할 수 있으며 코드의 호환성과 성능을 향상시킬 수 있습니다.
결론적으로, 사용 엄격은 JavaScript 코드를 작성할 때 높은 수준의 코드 품질과 안정성을 유지하기 위한 도구로 사용됩니다. 이를 통해 버그를 사전에 감지하고 성능을 향상시킬 수 있으며, 코드의 가독성과 유지 보수성도 향상됩니다. 따라서 사용 엄격 모드를 사용함으로써 JavaScript 개발자들은 보다 안정적이고 효율적인 코드를 작성할 수 있게 되는 것입니다.

반응형
Comments