20장 Strict mode

strict mode란?

자바스크립트 언어의 문법을 엄격히 적용하여 문제를 일으킬 수 있는 코드에 대한 명시적인 에러를 발생시킨다고합니다.

strict mode의 적용

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가 발생시키는 에러

  • 암묵적 전역
    선언하지 않은 변수를 참조하면 ReferenceError가 발생함
  • 변수,함수,매개변수의 삭제(delete)
    delete 연산자로 변수,함수,매개변수를 삭제하면 SyntaxError가 발생함
  • 매개변수 이름의 중복
    중복된 매개변수 이름을 사용하면 SyntaxError가 발생함
  • with문의 사용
    with문을 사용하면 SyntaxError가 발생함

arguments 객체

strict mode에서 매개변수에 전달된 인수를 재할당하여 변경해도 arguments 객체에 반영되지 않습니다.

<script>
(function (a){
	'use strict'
    // 매개변수에 전달된 인수를 재할당하여 변경
    a = 2;
    
    // 변경된 인수가 arguments 객체에 반영되지 않는다.
    console.log(arguments); // { 0: 1, length: 1}
}(1));
</script>

21장 빌트인 객체

자바스크립트 객체의 분류

  • 표준 빌트인 객체

    • ECMAScript 사양에 정의된 객체를 말합니다.
    • 자바스크립트 실행 환경 관계없이 언제든 사용이 가능합니다.
    • 전역 객체의 프로퍼티로 제공되어 선언 없이 언제나 참조를 할 수 있습니다.
  • 호스트 객체

    • ECMAScript 사양에 정의되어 있지 않지만 자바스크립트 실행 환경에서 추가 제공하는 객체입니다.
    • 브라우저 - 클라이언트 사이드 Web API를 제공합니다.
    • Node.js - Node.js 고유 API를 호스트로 제공합니다.
  • 사용자 정의 객체

    • 표준 빌트인 객체나 호스트 객체처럼 기본 제공되는 객체가 아닌 사용자가 직접 정의한 객체입니다.
profile
☄️

0개의 댓글