모던 자바스크립트 Deep Dive 스터디 6일차

김동환·2023년 7월 17일

Learn_JavaScript

목록 보기
8/10
post-thumbnail

6일차 주요 내용 정리


💡 6장 데이터 타입

boolean 타입

  • 논리적 참, 거짓을 나타내는 true 와 false 뿐이다.
  • 불리언 타입의 값은 참과 거짓으로 구분되는 조건에 의해 프로그램의 흐름을 제어하는 조건문에서 자주 사용.

undefined 타입

  • undefined 타입의 값은 undefined가 유일하다.
  • undefined 는 개발자가 의도적으로 할당하기 위한 값이 아니라 자바스크립트 엔진이 변수를 초기화 할 때 사용하는 값이다. 변수를 참조했을 때 undefined 가 반환된다면 참조한 변수가 선언 이후 값이 할당된 적이 없는, 즉 초기화되지 않은 변수라는 것을 간파할 수 있다.

null 타입

  • 변수에 값이 없다는 것을 명시하고 싶은 경우에는 undefined 를 할당하는 것이 아니라 null 을 할당한다.
  • 자바스크립트는 대소문자를 구별하므로 null 은 Null, NULL 등과 다르다.
  • null 은 변수에 값이 없다는 것을 의도적으로 명시(의도적 부재 intentional absence)할 때 사용한다. 변수에 null 을 할당하는 것은 변수가 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거하는 것을 의미하며, 자바스크립트 엔진은 누구도 참조하지 않는 메모리 공간에 대해 가비지 콜렉션을 수행할 것이다.
    var foo = 'Kim';
    // 유용해 보이지는 않는다. 변수의 스코프를 좁게 만들어 변수를 빨리 소멸시키는 편이 나음.
    foo = null;
  • document.querySelector 메서드는 조건에 부합하는 HTML 요소를 검색할 수 없는 경우 에러 대신 null을 반환한다.
    <!DOCTYPE html>
    <html>
    <body>
    	<script>
    		var element = document.querySelector('.myClass');
    
    		//HTML 문서에 myClass 클래스를 갖는 요소가 없다면 null을 반환한다.
    		console.log(element); // null
    	</script>
    </body>
    </html>

Symbol 타입

  • 심벌은 ES6에서 추가된 7번째 타입으로, 변경 불가능한 원시 타입의 값이다. 따라서 주로 이름이 충돌할 위험이 없는 객체의 유일한 프로퍼티 키를 만들기 위해 사용한다.
  • 심벌 이외의 원시 값은 리터럴을 통해 생성하지만 심벌은 Symbol 함수를 호출해 생성한다. 이때 생성된 심벌 값은 외부에 노출되지 않으며, 다른 값과 절대 중복되지 않는 유일무이한 값이다.
    // 심벌 값 생성
    
    var key = Symbol('key');
    console.log(typeof key); // symbol
    
    // 객체 생성
    var obj = {};
    
    // 이름이 충돌할 위험이 없는 유일무이한 값인 심벌을 프로퍼티 키로 사용한다.
    obj[key] = 'value';
    console.log(obj[key]); // value

객체 타입

  • 자바스크립트의 데이터 타입은 크게 원시 타입과 객체 타입으로 분류한다고 했다. 자바스크립트는 객체 기반의 언어이며, 자바스크립트를 이루고 있는 거의 모든 것이 객체다. 위에 6가지 데이터 타입 이외의 값은 모두 객체 타입이다.
profile
프론트엔드 개발자

0개의 댓글