본문 바로가기
Study/Javascript 왕초보

[Javascript] 6장 데이터 타입 (deep dive)

by jeongwle 2022. 4. 29.
728x90
반응형

자바스크립트(ES6)는 7개의 데이터 타입을 제공한다. 7개의 데이터 타입은 원시 타입과 객체 타입으로 분류할 수 있다.

구분 데이터 타입 설명
원시 타입 숫자 타입 숫자. 정수와 실수 구분 없이 하나의 숫자 타입만 존재
문자열 타입 문자열
불리언 타입 논리적 참(true)과 거짓(false)
undefined 타입 var 키워드로 선언된 변수에 암묵적으로 할당되는 값
null 타입 값이 없다는 것을 의도적으로 명시할 때 사용하는 값
심벌 타입 ES6에서 추가된 7번째 타입
객체 타입 객체, 함수, 배열 등

숫자 타입

  • 모든 수를 실수로 처리한다.
  • Infinity, -Infiniy, NaN 을 제공한다. 자바스크립트는 대소문자를 구별하므로 다르게 쓰면 인식하지 못한다.

문자열 타입

  • 문자열은 작은따옴표(''), 큰따옴표(""), 백틱(``)으로 텍스트를 감싼다. -> 감싸지 않을 경우 문자열로 인식하지 않는다.
  • 작은따옴표로 감싼 문자열 내의 큰따옴표는 문자열로 인식된다. -> 그 반대도 가능.
  • 백틱으로 감싼 문자열은 템플릿 리터럴이라고 한다. 
var template = `<ul>
	<li><a href="#">Home</a></li>
</ul>`
console.log(template);

템플릿 리터럴 내에서는 이스케이프 시퀀스를 사용하지 않고도 줄바꿈이 허용되며, 모든 공백도 있는 그대로 적용된다.

위 코드의 결과물

템플릿 리터럴은 표현식을 삽입하는 것도 가능하다.

var first = 'jeongwook';
var last = 'Lee';

console.log('My name is ' + first + ' ' + last + '.'); // My name is jeongwook Lee.
console.log(`My name is ${first} ${last}.`); // My name is jeongwook Lee.

console.log('1 + 2 = ${1 + 2}'); // 1 + 2 = ${1 + 2}
console.log(`1 + 2 = ${1 + 2}`); // 1 + 2 = 3

 

불리언 타입

  • 불리언 타입의 값은 논리적 참, 거짓을 나타내는 true와 false 뿐이다.

undefined 타입

  • undefined 타입의 값은 undefined가 유일하다.
  • var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화 된다.
  • 변수를 개발자가 의도적으로 undefined로 초기화 하는 것은 권장하지 않는다.

null 타입

  • null 타입의 값은 null이 유일하다. 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다.

심벌(symbol) 타입

  • 심벌은 ES6에서 추가된 7번째 타입으로, 변경 불가능한 원시 타입의 값이다. 심벌 값은 다른 값과 중복되지 않는 유일무이한 값이다. 
  • 심벌은 Symbol 함수를 호출해 생성한다.
  • 자세한 것은 나중에 다룬다고 한다.
var key = Symbol('key');
console.log(typeof key); // symbol

var obj = {};

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

 

객체 타입

  • 지금까지 살펴본 6가지 데이터 타입 이외의 값은 모두 객체 타입이다. 자세한건 나중에 더 살펴본다고 한다.

정적 타입 언어는 변수를 선언할 때 데이터 타입을 사전에 선언해야 한다. 이에 반해 자바스크립트는 동적 타입 언어이다. 변수의 선언이 아닌 할당에 의해 타입이 정해지고 재할당에 의해 언제든지 타입이 동적으로 변할 수 있다. 하지만 이러한 동적 타입 언어는 변수 값이 언제든지 변경될 수 있기 때문에 변화하는 변수값을 추적하기 어려운 면이 있다. 때문에 사용자가 변수를 사용할때 신경을 잘 써야 한다.

728x90
반응형

댓글