JavaScript `use strict` 2분만에 설명

4820 단어 webdevjavascript
이 게시물은 원래 CSS, JavaScript 및 거의 모든 프로그래밍에 대한 블로그인 xtrp.io에서 가져온 것입니다.

내 최신 프로젝트인 Daily Developer Jokes을 확인하십시오!



오늘의 농담은 이렇습니다.



JavaScript는 해석 방식에 있어 매우 관대한 언어입니다. 예를 들어:

x = 5;


유효한 JavaScript 코드가 아니며 var x = 5(또는 ES6에서는 const/let)로 작성해야 하지만 JavaScript 인터프리터는 여전히 이를 허용하고 오류를 제공하지 않습니다.

간단히 말해서 일반적으로 일반 JavaScript는 잘못 작성되고 잘못된 구문을 포함하는 코드를 허용합니다.

엄격하게 사용하면 이 문제가 해결됩니다.



ES5에 도입된 use strict 지시문은 잘못 작성된 JavaScript를 오류로 변환하도록 인터프리터에게 지시하는 방법을 제공합니다.

이로 인해 개발자는 프로세스에서 더 깨끗하고 체계적이며 읽기 쉬운 코드를 작성해야 합니다. 실제로 use strictReactJS , jQuery 등과 같은 많은 유명한 JavaScript 라이브러리에서 사용됩니다.

"use strict"라는 줄로 작성했습니다.



다음 줄은 현재 함수 범위에서 활성화use strict하는 데 사용됩니다.

"use strict";

// strict code here


특정 함수에서 use strict를 사용하면 다음과 같습니다.

function myFunc(){
    "use strict";

    // strict code here
}


엄격한 코드가 전역 변수를 방지하기 때문에 전역 범위에서의 사용은 일반적으로 사용되지 않습니다(나중에 자세히 설명).

대신 다음과 같이 JavaScript IIFE(즉시 호출되는 함수 표현식) 내에서 use strict를 사용하는 것이 일반적입니다.

// non-strict code here

(function(){
    "use strict";

    // strict code here
})();

// non-strict code here

"use strict"; 행은 JavaScript 리터럴 표현식이며 지원하지 않는 JavaScript 버전에서는 무시됩니다.
use strict는 모든 주요 브라우저에서 지원됩니다(CanIUse Data 참조).

다음 예를 고려하십시오.





엄격하지 않은 코드이며 몇 가지 잠재적인 문제를 일으킵니다.
  • 적절한 var(또는 ES6의 let/const) 선언 없이 변수를 생성합니다
  • .
  • 깨끗하지 않거나 유지 관리하기 어려운 코드로 이어질 수 있는 전역 변수를 생성합니다
  • .
  • JavaScript의 가비지 수집기가 자동으로 수행하도록 하는 대신 delete 키워드를 사용하여 변수를 삭제합니다.
  • use strict를 사용하면 해당 코드가 다음과 같이 작성됩니다.



    엄격하게 사용하는 것이 정확히 방지하는 것



    다음은 엄격 모드에 포함된 주요 기능의 간략한 목록입니다.
  • 변수의 적절한 선언을 강제합니다(예: x = 1; )
  • 전역 변수 방지
  • 반복되는 개체 속성 이름을 차단합니다(예: var obj = {p1: 5, p1: 7, p2: 9}; )
  • 쓸 수 없는 전역 변수에 대한 블록 할당(예: undefined = 1; )
  • 8진수 사용 방지(예: var x = 0o144; )

  • 이것은 전체 목록이 아니며 Use Strict MDN Web Docs Page에서 use strict의 정확한 기능에 대해 자세히 알아볼 수 있습니다.

    이 기사가 마음에 드셨기를 바라며 use strict가 나중에 사용할 수 있는 것임을 발견하셨기를 바랍니다.

    이 게시물은 원래 CSS, JavaScript 및 거의 모든 프로그래밍에 대한 블로그인 xtrp.io에서 가져온 것입니다.

    스크롤해주셔서 감사합니다.

    — 가브리엘 로무알도, 2020년 1월 17일

    참고: 이전에는 Fred Adams라는 가명으로 썼습니다.

    좋은 웹페이지 즐겨찾기