JavaScript에서는 데이터형을 거의 의식하지 않는다.
이 말은 JavaScript에서의 변수는 대입되는 값에 따라서 데이터형이나 크기가 변환된다라는 뜻이다.
var x = '안녕하세요, JavaScript !';
x = 100;
◼ JavaScript의 주요 데이터형
기본 형 : 변수에 값 그자체가 직접 보관
1. 숫자형(number)
2. 문자열형(string)
3. 논리형(boolean)
4. 심벌형(symbol)
5. 특수형(null/undefined)
참조 형 : 변수에 참조 값(실제 값을 보관하고 있는 메모리 어드레스) 보관
1. 배열(array)
2. 객체(object)
3. 함수(function)
: 데이터 형에 보관되는 값 그자체 또는 값의 표현 방법
1) 숫자 리터럴
◽ 정수 리터럴 : 10진수, 2진수(0b, 0~1), 8진수(0o, 0~7), 16진수(0x, 0~9 A~F)
◽ 부동 소수점 리터럴 : 일반 소수점과 지수 표현('e'는 소문자, 대문자 둘 다 가능)
2) 문자열 리터럴
: 작은 따옴표('), 큰 따옴표(")로 표현
"안녕하세요, JavaScript!"
'안녕하세요, JavaScript!'
❕ 문자열 안에 작은 따옴표/큰 따옴표 포함할 경우 ❕
: 각 문자열에 포함되어 있지 않은 따옴표를 사용한다.
'He's Hero!' // 문자열 안에 작음따옴표가 포함되어 있으므로 불가
"He's Hero!" // 문자열 안에 작음따옴표가 포함되어 있으나 큰 따옴표로 둘러쌌으니 가능
◼ 이스케이프 시퀀스
: '\ + 문자' 형식으로 특수한 의미를 가진 문자이다.
| \b | 백 스페이스 |
| \f | 새로운 페이지 |
| \n | 개행 |
| \r | 복귀 |
| \t | 탭 문자 |
| \\ | \마크 |
| \' | 작은 따옴표 |
| \" | 큰 따옴표 |
'He's Hero!' // 오류
'He\'s Hero!' // 가능
3) 템플릿 문자열
: 문자열 안에 변수 삽입 가능
: 복수행을 걸친 문자열 표현 가능
: (`) 백쿼트로 문자열을 감싼다.
let name = '하은';
let str = `안녕하세요, ${name}씨.
오늘도 좋은 날씨네요!`;
console.log(str);
결과
안녕하세요, 하은씨.
오늘도 좋은 날씨네요!
4) 배열 리터럴
: 배열 이란 데이터의 집합을 말하며 즉, 하나의 변수에 대해 복수의 값을 보관
: 요소 란 하나씩 나누어진 구분에 보관된 값
5) 객체 리터럴
: 각 요소에 문자열을 키로 하여 접근할 수 있는 배열
: 해시, 연상 배열로 불린다.
: 객체 내의 개별 데이터는 프로퍼티라 불린다.
❗ 배열 리터럴과 객체 리터럴 ❗
| 구분 | 배열 리터럴 | 객체 리터럴 |
|---|---|---|
| 기호 | 대괄호 [ ] | 중괄호 { } |
| 표기 | 각 요소의 값 | 프로퍼티이름 : 프로퍼티값 |
| 접근명 | 배열명[인덱스번호] | 객체명.프로퍼티이름, 객체명['프로퍼티이름'] |
✔ 배열 리터럴 예시
var data = ['JavaScript', 'Ajax', 'ASP.NET'];
console.log(data[0]); // 결과: JavaScript
✔ 객체 리터럴 예시
var obj = { x:1, y:2, z:3 };
console.log(obj.x); // 결과 : 1
console.log(obj['x']); // 결과 : 1
6) 함수 리터럴
: 함수란 어떠한 입력값이 주어짐에 따라 미리 정해진 처리를 행하여 그 결과 값을 반환해주는 구조
◽ 미정의 값(undefined) : 어떤 변수 값이 정의되어 있지 않음을 나타내는 값
var x;
var obj = { a: 12345 };
console.log(x); // undefined
console.log(obj.b); // undefined
◽ null(널) : 해당하는 값이 없을 때를 의미하는 값
❕ underfined와 null의 차이점 ❕
underfined는 '정의되지 않았다 - 본래부터 참조하려는 생각을 하지 않았다' 라는 상태
null은 '비어 있다'라는 상태