2022.04.04.월요일
06. 데이터 타입
데이터 타입은 7개의 데이터 타입이 있다.
원시타입 : 숫자, 문자열, 불리언, undefined, null, 심벌
객체 타입
6.1 숫자 타입
- 자바 스크립트는 하나의 숫자 타입만 존재한다.
- 참조하면 10진수로만 해석된다.
- 특수한 값으로는 Infinity, -Infinity, NaN(Not-a-Number) 3개 있다.
6.2 문자열 타입
- '',"", ''(백틱)으로 텍스트를 감싸 사용할 수 있다.
- 변경 불가능한 값이다.
6.3 탬플릿 리터럴
템플릿 리터럴이란? 새로운 문자열 표기법으로 멀티라인 문자열, 표현식 삽입, 태그드 템플릿 등 편리한 문자열 처리 기능을 제공한다.
-
멀티라인 문자열
일반적인 문자열은 줄바꿈을 인정하지 않는다. 하지만 멀티라인 문자열에 서는 줄바꿈을 인정하여 다음과 같이 사용할 수 있다.
var template = `<ul>
<li><a href="#">Home</a></li>
</ul>`;
console.log(template);
-
표현식 삽입
템플릿 리터럴 내에 표현식 삽입을 할 수 있다.
var first = 'Ung-mo';
var last = 'Lee';
console.log(`My name is `+first + ' ' + last + '.');
-
태그드 템플릿
${}를 사용함으로써 가독성을 더 높인다. 이때 표현식의 평가 결과가 문자 열이 아니더라도 문자열로 타입이 강제로 변환되어 삽입된다.
var first = 'Ung-mo';
var last = 'Lee';
console.log(`My name is ${first} ${last}.`);
6.4 불리언 타입
참, 거짓을 나타내는 논리 값.
6.5 undefined 타입
- undefined 타입의 값은 undefined가 유일하다.
- var 키워드로 선언한 변수는 암묵적으로 undefined로 초기화된다.
- 개발자가 의도적으로 넣는 값이 아니기에 undefined 대신에 null로 초기화하는 것을 추천한다.
6.6 null 타입
- null 타입의 값은 null이 유일하다.
- 대소문자를 구분하기에 null, Null, NULL 다 다른 것으로 인식한다.
- 이전에 참조하던 값을 더 이상 참조하지 않겠다는 의미가 있다.
- null 이후 해당 메모리 공간은 가비지 콜렉션에 의해 사라진다.
- 함수가 유효한 값을 반환할 수 없는 경우에 null을 반환하기도 한다.
6.7 심벌 타입
- ES6에 추가된 타입으로 변경 불가능한 원시 타입의 값이다.
- 다른 값과 중복되지 않는 유일무이한 값이다.
6.8 객체 타입
자바스크립트를 이루고 있는 거의 모든 것들이 객체이다.
6.9 데이터 타입의 필요성
- 데이터 타입에 의한 메모리 공간의 확보와 참조
- 데이터 타입에 의한 값의 해석
6.10 동적 타이핑
6.10.1 동적 타입 언어와 정적 타입 언어
데이터의 선언 시에 타입이 결정되면 정적 타입언어, 데이터의 할당 시에 타입이 결정되면 동적 타입언어이다.
- 정적 타입 언어 : C, C++, Java, Kotlin, Go etc...
- 동적 타입 언어 : JavaScript, Python, PHP, Ruby etc...
6.10.2 동적 타입 언어와 변수
※ 동적 타입 언어는 유연성은 높지만 신뢰성이 떨어진다. 이 신뢰성을 유지하기 위한 주의사항은 다음과 같다.
- 변수는 꼭 필요한 경에 한해 제한적으로 사용한다.
- 변수의 스코프는 최대한 좁게 만든다.
- 전역 변수는 최대한 사용하지 않도록 한다.
- 상수를 사용해 값의 변경을 억제한다.
- 네이밍을 통해 존재 이유를 쉽게 파악하게 한다.
※ 가독성이 높은 코드가 좋은 코드다.