[JavaScript] 데이터형

수민🐣·2022년 1월 6일

JavaScript

목록 보기
4/32

1. 데이터형

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)

2. 리터럴

: 데이터 형에 보관되는 값 그자체 또는 값의 표현 방법

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은 '비어 있다'라는 상태

0개의 댓글