자바스크립트 언어의 문법을 엄격히 적용하여 문제를 일으킬 수 있는 코드에 대한 명시적인 에러를 발생시킨다고합니다.
strict mode를 적용하려면 전역의 선두 또는 함수 몸체의 선두에
use strict;
를 추가합니다.
전역의 선두에 추가하면 스크립트 코드 전체에 strict mode가 적용됩니다.
전역 선두에 선언
<script>
'use strict'
function foo() {
x = 10; //ReferenceError : x is not defined
}
</script>
함수 몸체 선두에 선언
<script>
function foo() {
'use strict'
x = 10; //ReferenceError : x is not defined
}
</script>
'use strict'를 선두에 위치하지 않으면 제대로 동작하지 않습니다.
strict mode에서 매개변수에 전달된 인수를 재할당하여 변경해도 arguments 객체에 반영되지 않습니다.
<script>
(function (a){
'use strict'
// 매개변수에 전달된 인수를 재할당하여 변경
a = 2;
// 변경된 인수가 arguments 객체에 반영되지 않는다.
console.log(arguments); // { 0: 1, length: 1}
}(1));
</script>
표준 빌트인 객체
호스트 객체
사용자 정의 객체