기본형
- number(숫자) : 따옴표 없는 숫자를 표기할 때
- string(문자열) : 따옴표로 묶어 표기할 때
- boolean(논리형) : 참이나 거짓을 가질 때
- undefined : 변수만 선언하고 값을 정의하지 않아 자료형이 정해지지 않았을 때
- null : 값이 유효하지 않을 때
복합형
- array(배열) : 하나의 변수에 여러 값 저장할 때
- object(객체) : 함수와 속성이 함께 표기될 때
typeof 연산자
- 변수 또는 값이 어떤 자료형인지 알고 싶을 때 사용
number(숫자)
- 자바스크립트에서 정수와 실수 모두 number로 취급한다
- 자바스크립트는 정수 16자리까지 표현할 수 있다 (넘어가는 순간 오류남)

- 0.1 + 0.2 = 0.30000000000000004 <-- ??
- 자바스크립트의 숫자는 항상 64비트 부동 소수점이다. 10진수를 2진수로 변환시켜 저장할 때 64비트를 초과하는 부분은 반올림하여 저장하기 때문에 근사치를 저장한다. 0.1+0.2의 합인 0.3은 무한소수이기 때문에 오차가 발생하고 0.30000000000000004이 나오게 된다.
- 연산 오류를 해결하기 위해 외부 라이브러리를 사용한다
- 이런 문제를 방지하기 위해 정수와 실수의 자료형을 다르게 선언하는 언어도 있다.(자바, c언어)
- undefined <-- ??
- 맨 위에서 값을 정의 하지 않아 자료형이 정해지지 않았을 때 undefined가 사용된다고 했지만 위 콘솔창에서는 값이 정해졌어도 undefined가 나와서 처음에 오해했다. 하지만 알고 보니 저것은 typeof를 사용해서 나온 자료형이 아닌 그저 var num1 = 1; 에서 반환할 값이 없기 때문에 나오는 undefined였다. 그냥 할 말 없는데 대답은 해야 하니 나오는 느낌..?ㅋㅋㅋㅋㅋㅋㅋㅋㅋ
string(문자형)
- 작은따옴표(')나 큰따옴표(")로 묶은 변수나 값이다
- 숫자도 따옴표로 묶으면 문자형이다
- 큰따옴표로 묶은 곳 안에 또 따옴표를 써야 한다면 그때는 작은따옴표를 사용한다

boolean(논리형)
- 참(true)과 거짓(false)이라는 값을 표현하는 자료형이다

undefined와 null
- undefined : 처음부터 변수의 값이 할당되지 않음
- null : 처음에 할당된 값이 더는 유효하지 않음

- 값이 처음부터 없었던 경우와 더는 없는 경우를 구분한다
- 변수를 초기화할 때 null을 많이 사용한다
array(배열)
- 하나의 변수에 여러 값을 저장하는 것


- 배열을 사용하면 1줄로 줄여 작성할 수 있다
- 인덱스는 0부터 시작된다
- 배열의 이름을 사용하면 배열 내용 전체를 가져온다
- 배열 이름과 대괄호([ ]) 안에 인덱스 숫자를 넣으면 해당 위치의 값만 가져온다 ex) week[0] --> "월"
object(객체)
- 여러 가료를 중괄호({ })로 묶는다
- 키(key)와 값(value)을 콜론(:)을 사용하여 한쌍으로 저장한다

자바스크립트 자료형의 특징
- 느슨한 자료형 체크(Weak Data Type Check) : 자바스크립트처럼 미리 변수형을 지정하지 않는 것
- 강력한 자료형 체크(Strong Data Type Check) : C언어나 Java와 같이 변수를 선언할 때 변수의 자료형을 미리 지정하는 것.
- 자바스크립트는 프로그램을 만들 때 변수에 의도한 값이 정확하게 들어갔는지 꼭 확인해야 한다.
- 자바스크립트도 다른 프로그래밍 언어처럼 자료형을 강하게 확인해야 할 필요가 있다는 주장이 나와 '타입스크립트(TypeScript)'가 나왔다.
도슐랭스타
★★★★☆ : 다른 언어들과 비슷하면서 다른 것이 재미있구만!
정수와 실수를 구분하지 않으니 문제가 생기는 것도 흥미로웠고 왜 c언어에서 정수와 실수를 구분하는지 그 필요성을 이해했다. undefined와 null도 새롭고 재미있다. object는 파이썬의 딕셔너리와 비슷해서 반가웠다.
'JavaScript' 카테고리의 다른 글
| JavaScript-함수 (0) | 2023.07.11 |
|---|---|
| JavaScript-제어문(if,switch,for,while문) (0) | 2023.07.06 |
| JavaScript-연산자 (1) | 2023.06.27 |
| JavaScript-변수 (0) | 2023.06.15 |
| JavaScript - 소스 작성 규칙과 prompt(), alert(), document.write(), console.log() 함수 (0) | 2023.06.09 |