본문 바로가기
교육, 학습/멀티캠퍼스_풀 스택

JS 문법 - 데이터 타입

by 개발하는 경제학도 2022. 2. 9.

강의 소개

현재 수강하고 있는 멀티캠퍼스 k-digital 지능형 웹서비스 풀 스택 과정을 수강하며 적은 내용입니다.

교재로는 모던 자바스크립트 입문을 사용하고 있습니다.


데이터 타입

자바스크립트는 원시 타입, 객체 타입 두 종류가 있다.

데이터 타입 원시 타입 숫자(number)
문자열(string)
논리값(boolean)
특수한 값(undefined, null)
심벌
객체/참조 타입 object: 원시 타입에 속하지 않는 자바스크립트의 값(함수, 배열 타입 등을 포함)

 

숫자

number타입으로 숫자를 나타내는데 정수, 실수 모두 포함한다. 자바는 int와 float 등으로 구분하는 것과 차이가 있다.

 

문자열

문자열을 표현할 때는 작은따옴표('), 큰 따옴표(") 모두 사용할 수 있다.

 

템플릿 리터럴(template literal)

또한 긴 문자열을 포함할 때는 여러 줄로 나누기 위해 역 따옴표(`)를 사용할 수 있다. 일반적으로 ' 나 "로 감싸져 있는 문자열에서 이스케이프 문자 중 \n을 사용한 효과와 같다. 참고로 맥북에서 역 따옴표는 한영키를 영타로 하고 원화(₩) 부분을 누르면 나온다.

var hi = `안녕
하세요`;

 

표현식을 ${ }로 감싸고 이를 역 따옴표(백 틱)로 감싼 문자열 중간에 넣어주면 해당 표현식을 문자열 중간에 쉽게 삽입할 수 있다. 이런 방식을 템플릿 리터럴(template literal)이라 한다. ECMAScript6에서 추가된 문자열 표현 구문이다.

function square(a) {
  return a * a;
}

alert(`3 * 3 = ${sqaure(3)}.`); // 3 * 3 = 9

 

심벌

심벌은 ECMAScript6에서 추가된 원시 타입이다. 심벌은 유일무이한 값이다.

Symbol 값은 Symbol 함수를 호출하여 생성한다. 심벌 값은 자바스크립트 런타임 환경에서 Symbol 함수에 의해 동적으로 생성되며 다른 값과 중복되지 않는 고유한 값이다. 생성된 심벌 값은 외부로 노출되지 않아 확인할 수 없다.

var sym1 = Symbol();
var sym2 = Symbol();
console.log(sym1 == sym2); // false

 

인자를 사용해서도 생성할 수 있다.

Symbol 함수에 들어가는 문자열 인자는 심벌 값에 대한 description으로서 선택적으로 넣을 수 있다. 이 문자열은 디버깅 용도로만 사용되며 심벌 값 생성에 영향을 주지는 않는다.

var mon = Symbol("월");

 

특수한 값

값이 없음은 null, undefined가 있다.

undefined는 정의되지 않은 상태이다. 아래와 같은 경우 undefined로 자바스크립트 엔진이 할당한다.

- 값을 아직 할당하지 않은 변수의 값

- 없는 객체의 프로퍼티를 읽으려고 시도했을 때의 값

- 없는 배열의 요소를 읽으려고 시도했을 때의 값

- 아무것도 반환하지 않는 함수가 반환하는 값

- 함수를 호출했을 때 전달받지 못한 인수의 값

 

null은 아무것도 없음을 값으로 표현한 리터럴이다. 주로 프로그램에서 무엇을 검색했을 때, 아무것도 없음을 전달하기 위한 값으로 null을 사용한다.

 

 

동적 타입 언어

자바스크립트는 동적 타입 언어이다. 자세히 말하자면 변수에 원래 저장되어 있던 데이터 타입을 동적으로 바꿀 수 있다는 것이다.

var str = 3; // 숫자
str = "안녕하세요"; // 문자열타입

동적 타입이기에 이와 같이 처음에 숫자 타입으로 선언되었던 str변수에 문자열을 대입할 수 있다.

 

댓글