자바스크립트 엄격 모드 "use strict" 차이점 설명

2020. 11. 7. 21:46·개발/JavaScript

'use strict';는 자바스크립트에서 코드를 엄격 모드(strict mode)로 실행하는 것입니다. 'use strict';를 사용하면 선언하지 않은 변수를 사용할 수 없으며, 변수 및 함수를 삭제할 수 없는 등 자바스크립트 엔진에 보다 엄격한 기준이 적용됩니다.

 

선언하지 않은 변수는 사용할 수 없는 것이 원칙입니다. 그러나 다음 예시에서 보듯 x는 var, let, const 의 키워드를 통해 선언되지 않았기 때문에 에러가 발생할 것 같지만, 실제로는 자바스크립트 엔진이 전역 객체에 프로퍼티를 생성하여 5가 출력됩니다.

function foo() {
    x = 5;
}
foo();

console.log(x); // 5

이처럼 자바스크립트 엔진은 변수가 키워드를 통해 생성되지 않은 경우, 암묵적 전역(implicit global) 변수를 생성합니다.

 

그러나 아래의 경우처럼 'use strict';을 사용하는 경우, 보듯 x가 정의되지 않았다는 메시지가 출력됩니다.

'use strict'

function foo() {
    x = 5;
}
foo();

console.log(x); // x is not defined

'use strict';을 스크립트 처음에 명시하면, 스크립트 전체에 엄격 모드가 적용되며, 함수 내에 명시하면 해당 함수 및 중첩 함수에 엄격 모드가 적용됩니다.

이처럼 엄격 모드에서는 선언되지 않은 자바스크립트 엔진이 임의로 변수를 생성하지 못하게 하기 때문에 보다 안전한 코드 작성이 가능합니다.

'개발 > JavaScript' 카테고리의 다른 글

자바스크립트 클로저 설명, 예시, 활용  (0) 2020.11.08
자바스크립트 타이머 setTimeout / setInterval 설명  (0) 2020.11.07
자바스크립트 프로토타입이란?  (0) 2020.10.30
'개발/JavaScript' 카테고리의 다른 글
  • 자바스크립트 arguments를 사용한 가변 인자 함수 활용
  • 자바스크립트 클로저 설명, 예시, 활용
  • 자바스크립트 타이머 setTimeout / setInterval 설명
  • 자바스크립트 프로토타입이란?
휘Hwi
휘Hwi
여행, 사진, 개발, 책 이야기를 기록하는 여행자 휘의 블로그 𓂍
  • 휘Hwi
    휘: 끝나지 않은 이야기
    휘Hwi
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • 기록
        • 일상 에세이
        • 인사이트
        • 투자와 재테크
        • 코인 이야기
        • 아카이빙
        • 집무실 레터
        • 사랑에 대하여
        • 번역 이야기(完)
        • 프리랜서 일지(完)
      • 여행
        • 🌎 세계 여행기 S1 (完)
        • 🌊 삼삼한 여행기 (完)
        • 🚶 온더로드
        • 🇯🇵 일본
        • 🏝️ 발리
        • 🇻🇳 베트남
        • 🇱🇰 스리랑카
        • 🇮🇳 인도
        • 🇹🇭 태국
        • 🇸🇬 싱가포르
        • 🇦🇺 호주
        • 🇭🇰 홍콩
        • 🇰🇷 한국
        • 🍚 여행자의 한 끼
        • ℹ️ 여행 정보
      • 사진
        • 사진가
        • 사진 이론과 생각
        • 사진 관련 정보
      • 영상
        • 파이널컷 모션 공부
        • 고프로 GoPro
        • 영상 관련 정보
      • 책
        • 책 읽고 쓰기
      • 개발 N
        • 티스토리
        • Internet
        • HTML
        • CSS
        • JavaScript
        • Typescript
        • React
        • Node.js
        • Express
        • NestJS
        • Python
        • Django
        • MySQL
        • MongoDB
        • AWS
        • Deployment
        • Terminal
        • Git N
        • Glossaries
        • Articles
        • Projects
        • TIL;
      • 미분류
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
휘Hwi
자바스크립트 엄격 모드 "use strict" 차이점 설명
상단으로

티스토리툴바