20210825-TIL

노강표 Noh Gang Pyo ·2021년 8월 25일

모던자바스크립트 딥다이브

20. strict mode

strict mode란

자바스크립트 언어의 문법을 좀더 엄격히 적용하여 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수있는 코드에 대해 명시적인 에러를 발생시킴.

strict mode 적용법

전역의 선두 또는 함수 몸체의 선두에 'use strcit'; 를 추가시킨다. 전역의 선두에 추가할시 스크립트 전체에 적용되고,
함수몸체의 선두에 추가할시 함수몸체에서만 적용된다.

strict mode가 발생시키는 에러

1.암묵적 전역

선언하지않은 변수를 참조하면 ReferenceError를 발생시킨다.

function example () {
'use strict';
 x = 1;
 console.log(x);// ReferenceError : x is not defined
 }      

2. 매개변수 이름의 중복

중복된 매개변수 이름을 사용하면 SyntacError가 발생한다.

function example(x,x) {
'use strict'; 
	return x+x;
}
console.log(example(x,x)); // SyntacError : Duplicate parameter name not allowed in this context

strict mode 적용에 의한 변환

1. 일반 함수의 this

strict mode에서 함수를 일반 함수로서 호출하면 this에 undefined가 바인딩된다. 생성자 함수가아닌 일반함수 내에선 this를 사용할 필요가 없기 떄문이다.

function example () {
  'use strict';
  function foo() {
    console.log(this); // undefined
  }
  foo();
  
  function Foo() { 
    console.log(this); //Foo
  }
  new Foo();
}
profile
FE developer 🙂

0개의 댓글