자바스크립트의 타입에는 7개의 원시타입과 객체타입으로 분류 가능하다
원시타입은 숫자, 문자, 불리언, undefined, null, symbol 이며,
객체타입으로 나뉜다.
6.1 숫자
C, 자바는 정수와 실수 같이 숫자에 따라 구분을 위해 int, float, double과 같이 다양한 타입 제공
하지만 자바스크립트는 하나의 숫자 타입만 존재
var int = 10;
var double = 10.1;
자바스크립트 숫자 타입은 모든 수를 실수로 처리
console.log(1 === 1.0); //true
6.2 문자열
문자열은 작은따옴표(' '), 큰따옴표(" "), 백틱(` `)으로 구분
※백틱은 ES6
6.3 템플릿 리터럴
ES6부터 도입
템플릿 리터럴은 작은따옴표(' ')와 큰따옴표(" ")가 아닌 백틱(` `) 사용
//1
var str = 'te
st'; //error
//2
var str = `te
st`; //success
위에서
1번의 경우는 작은따옴표를 사용해서 줄바꿈을 했을때 이다. 에러가 발생
2번의 경우는 백틱을 사용하여 줄바꿈 했을때 에러없이 정상적으로 변수에 저장
템플릿 리터럴 내에서 표현식 삽입(expression interpolation)을 문자열 삽입
var first = 'kwak';
var second = 'gold';
console.log(`My name is ${first} ${last}`); //My name is kwak gold
6.4 불리언
논리적 참, 거짓인 true와 false
6.5 undefined
var 키워드로 선언한 변수는 undefined로 초기화 ( undefined 직역하면 '정의되지 않은' )
즉, 초기화되지 않은 변수라는 것을 의미
6.6. null
null타입의 값은 null
null은 변수에 값이 없다는 것을 의도적 명시할 때 사용
또 함수가 유효한 값을 반환할 수 없는 경우에도 null을 반환
자바스크립트는 대소문자 구별하기에 null은 Null, NULL 등과 다르다.
6.7 심벌
ES6에 추가된 타입, 변경 불가능한 원시 타입
심벌 값은 다른 값과 중복되지 않는 유일무이한 값
Symbol 함수를 호출해 생성하며, 생성된 심벌값은 외부에 노출되지 않는다.
6.8 객체
자바스크립트 데이터 타입은 원시 / 객체 타입으로 분류
자바스크립트는 객체 기반 언어이며, 자바스크립트의 거의 모든 것이 객체
마무리
자바스크립트의 변수는 선언이 아닌 할당에 의해 타입이 결정( 타입 추론 )된다.
그래서 자바스크립트를 정적 타입 언어와 구별하기 위해 동적 타입 언어라 한다.
변수는 타입을 갖지 않지만, 값은 타입을 갖는다.
동적 타입 언어는 변수에 어떤 데이터 타입의 값이라도 자유롭게 할당 가능하며, 유연성은 높지만 신뢰성은 떨어진다.
- 변수는 필요한 만큼 최소한으로 유지
- 전역변수는 최대한 사용하지 않는다
- 변수보다는 상수를 사용해 값의 변경을 억제
- 변수의 목적과 의미 파악이 쉽도록 네이밍
출처 : 모던 자바스크립트 Deep Dive
'공부 > 과거 자료' 카테고리의 다른 글
08 제어문 (0) | 2022.09.02 |
---|---|
07 연산자 (0) | 2022.09.02 |
[Oracle] database 설치 확인 sqlplus (0) | 2022.09.01 |
[Oracle] 오라클 11g Enterprise Edition Download (1) | 2022.09.01 |
[Eclipse] 프로젝트 Export하기 (0) | 2022.08.24 |