Step by Step

모던자바스크립트 Deep Dive - 6장(데이터 타입) 본문

Javascript Study

모던자바스크립트 Deep Dive - 6장(데이터 타입)

짤진이 2024. 2. 11. 19:09
반응형

자바스크립트의 모든 겂은 데이터 타입을 갖는다. 총 7개의 데이터 타입을 제공하는데 이를 원시 타입과 객체 타입으로 분류할 수 있다.

 

원시 타입

숫자 타입 - 숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재

문자열 타입 - 문자열

불리언 타입 - 논리적 참과 거짓

undefined 타입 - var 키워드로 의도적으로 명시할 때 사용하는 값

symbol 타입 - es6에서 추가된 7번쨰 타입

 

객체 타입

객체, 함수, 배열 등

 

숫자 1 문자열 1 완전히 다른 의미를 가지기 때문에 개발자가 의도하여 타입을 구별해야 한다.

 

var integer = 10;
var double = 10.12;
var negative = -20;

var binary = 0b01000001; //65
var octal = 0o101; //65
var hex = 0x41; //65

console.log(binary === octal); // true
console.log(1 === 1.0); // true
console.log(3 / 2); // 1.5
console.log(10 / 0); // Infinity
console.log(10 / -0); // -Infinity
console.log(1 * "String"); // NaN

 

자바스크립트의 숫자 타입은 정수만을 위한 타입이 없고 모든 수를 실수로 처리한다.

숫자 타입은 추가적으로 Infinity, -Infinity, NaN(산술 연산 불가) 세 가지 특별한 값도 표현할 수 있다.

자바스크립트는 대소문자를 구별하므로 NaN Nan, nan, nAn 등으로 표현하면 에러가 생긴다.

 

문자열 타입은 텍스트 데이터를 나타내는 데 사용한다.

문자열은 작은따옴표, 큰따옴표, 백틱으로 텍스트를 감싼다.

 

var string;
string = "문자열";
string = "문자열";
string = `문자열`;

 

따옴표로 감싸지 않으면 식별자로 인식한다.

 

var template = `Template literal`;
console.log(template);

 

표현식의 삽입

var first = "Chan-Jin";
var last = "Jeong";
console.log("My name is " + first + " " + last);
console.log(`My name is ${first} ${last}`);
console.log(`1 + 2 = ${1 + 2}`);

 

불리언 타입

var foo = true
var foo1 = false
var foo2 = true

 

undefined 타입

var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화된다.

이처럼 undefined는 개발자가 의도적으로 할당하기 위한 값이 아니라 자바스크립트 엔진이 변수를 초기화할 떄 사용하는 값이다.

자바스크립츠 엔진이 변수를 초기화하는데 사용한 undefined를 개발자가 의도적으로 변수에 할당한다면 본래 취지와 어긋날 뿐 아니라 혼란을 줄 수 있다.

해결책으로는 null 사용한다.

 

null 타입

null 타입은 null이 유일하다

프로그래밍 언어에서 null은 변수에 값이 없다는 것을 의도적으로 명시할 때 사용한다.

이는 이전에 할당되어 있던 값에 대한 참조를 명시적으로 제거하는 것을 의미하며 자바스크립트 엔진은 누구도 참조하지 않는 메모리 공간에 대해 가비지 콜렉션을 수행할 것이다.

 

객체 타입

자바스크립트의 데이터 타입은 크게 원시 타입가 객체 타입으로 분류한다.

데이터 타입이 필요한 이유

값을 저장할 때 획보해야 하는 메모리 공간의 크기를 결정하기 위해

값을 참조할 때 한번에 읽어 들여야할 메모리 공간의 크기를 결정하기 위해

메모리에서 읽어들인 2진수를 어떻게 해석할 결정하기 위해

반응형