[Javascript]자바스크립트의 데이터 타입

조재권·2021년 6월 16일
0
post-thumbnail

6장 데이터타입


출처 모던 자바스크립트 Deep Dive을 보고 정리한 내용입니다.

숫자 타입

자바스크립트는 C, C++와 같은 언어에서 사용하는 것처럼 정수형(int 등), 실수형(float 등)을 구분하지 않는다. number라는 타입으로 모든 숫자 타입을 실수로 처리한다. 배정밀도 64비트 부동소수점 형식을 따른다. 또한 Infinity(양의 무한대), -Infinity(음의 무한대), Nan(산술연산불가) 값을 표현할 수 있다.

문자열 타입

문자열은 작은 따옴표(''), 큰 따옴표(""), 백틱(``)로 표현할 수 있다.

템플릿 리터럴

ES6부터 도입되었으며 문자열에 멀티라인 문자열, 표현식 삽입, 태그된 템플릿 등의 기능을 지원한다.

  • 멀티라인 문자열 : 줄바꿈과 공백이 이스케이프 시퀸스 없이 문자열 내에서 적용된다.

    var template = `
    	<div>
    		<p>안녕하세요</p>
    	</div>`;
    
    console.log(template)
    //<div>
    //	<p>안녕하세요</p>
    //</div>
  • 표현식 삽입 : '${}'로 표현식을 감싸 문자열 내에서 표현식을 삽입할 수 있다.

    var template = `1 + 2 = ${1+2}입니다.`
    
    console.log(template) //1 + 2 = 3입니다.

boolean 타입

true와 false로 표현되며 참과 거짓을 나타내는 값

undefined 타입

자바스크립트 엔진이 변수를 초기화할 때 할당하는 개발자가 의도적으로 할당하지 않은 값

null 타입

변수에 값이 없다는 것을 개발자가 의도적으로 할당한 값

심벌 타입

ES6부터 도입되었으며 다른 값과 중복되지 않은 값으로 변경불가능한 원시타입의 값이다.

var key = Symbol('key');

console.log(typeof key) //symbol

var obj = {};
obj[key] = 'value';
console.log(obj[key]); //value

객체 타입

자바스크립트의 데이터 타입은 크게 원시 타입과 객체 타입으로 나뉜다. 자바스크립트는 객체기반 언어로 앞선 6개의 타입을 제외한 모든 것이 객체 타입이다.

동적 타이핑

자바스크립트는 C와 같은 정적 타입의 언어와 달리 변수의 선언단계에서 변수의 타입이 결정되지 않는 동적 타입 언어다. 그러므로 변수를 선언한 뒤 변수에 할당된 값에 따라 타입이 변화한다.

var value;
console.log(typeof value); //undefined

value = 6;
console.log(typeof value); //number

value = 'string';
console.log(typeof value); //string

value = true;
console.log(typeof value); //boolean

value = {};
console.log(typeof value); //object

value = Symbol();
console.log(typeof value); //symbol

이러한 동적타입의 언어는 코드의 유연성을 증가시키지만 신뢰성을 떨어트리는 문제점이 있다. 그러므로 변수를 사용할 때에는 다음과 같은 사항에 주의를 기울여 변수를 사용하자

  • 변수의 사용은 필요한만큼 최소한으로 사용한다.
  • Scope를 사용하여 변수의 유효범위를 제한적으로 사용한다.
  • 전역변수는 가급적 사용하지 않는다.
  • 상수를 이용하여 변수의 타입변경을 막는다.
  • 변수의 목적이나 의미를 쉽게 유추할 수 있도록 네이밍한다.
profile
프론트엔드 새내기의 발전 일기

0개의 댓글