[자바스크립트]자바스크립트의 자료형
글 작성자: 망고좋아
반응형
자료형
- 자바스크립트의 변수는 자료형에 관계없이 모든 데이터일 수 있다.
- 변수는 어느 순간 문자열일 수 있고 순간엔 숫자가 될 수 있다.
// no error
let message = "hello";
message = 123456;
- 이처럼 자료의 타입은 있지만, 변수에 저장되는 값의 타입은 언제든지 바꿀 수 있는 언어를 ‘동적 타입(dynamically typed)’ 언어라고 부른다.
숫자형
let n = 123;
n = 12.345;
- 숫자형(number type) 은 정수 및 부동소수점 숫자(floating point number)를 나타낸다.
- 숫자형엔 일반적인 숫자 외에
Infinity
,-Infinity
,NaN 같은
'특수 숫자 값(special numeric value)'이 포함된다.Infinity
는 어떤 숫자보다 더 큰 특수 값, 무한대를 나타낸다.NaN
은 계산 중에 에러가 발생했다는 것을 나타내 주는 값
문자형
- 자바스크립트에선 문자열(string)을 따옴표로 묶는다.
let str = "Hello";
let str2 = 'Single quotes are ok too';
let phrase = `can embed another ${str}`;
- 따옴표는 세 종류가 있다.
- 큰따옴표:
"Hello"
- 작은따옴표:
'Hello'
- 역 따옴표(백틱, backtick):
Hello
- 큰따옴표:
- 큰따옴표와 작은따옴표는 차이를 두지 않는다.
- 역 따옴표로 변수나 표현식을 감싼 후
${…}
안에 넣어주면, 변수나 표현식을 문자열 중간에 넣을 수 있다.
let name = "John";
// 변수를 문자열 중간에 삽입
alert( `Hello, ${name}!` ); // Hello, John!
// 표현식을 문자열 중간에 삽입
alert( `the result is ${1 + 2}` ); // the result is 3
- 그러나 큰따옴표나 작은따옴표를 사용하면 중간에 표현식을 넣을 수 없다는 점에 주의! -> 따옴표를 써야지 가능
alert( "the result is ${1 + 2}" );
// the result is ${1 + 2} (큰따옴표는 확장 기능을 지원하지 않습니다.)
- 자바스크립트는 글자형이 없다.(char 같은), 오직 문자형만 있다.
불린형
true
와false
두 가지 값밖에 없는 자료형
‘null’ 값
null
값은 어느 자료형에도 속하지 않는 값이다.null
값은 오로지null
값만 포함하는 별도의 자료형을 만든다.
let age = null;
- 자바스크립트에선
null
을- ‘존재하지 않는(nothing)’ 값
- ‘비어 있는(empty)’ 값
- ‘알 수 없는(unknown)’ 값을 나타내는 데 사용
- 따라서
let age = null;
은 나이를 알 수 없거나 그 값이 비어있음을 보여준다.
‘undefined’ 값
undefined
값도null
값처럼 자신만의 자료형을 형성undefined
는 '값이 할당되지 않은 상태’를 나타낼 때 사용- 변수는 선언했지만, 값을 할당하지 않았다면 해당 변수에
undefined
가 자동으로 할당된다
let age;
alert(age); // 'undefined'가 출력
typeof 연산자
typeof
연산자는 인수의 자료형을 반환typeof
연산자는 두 가지 형태의 문법을 지원한다.- 연산자:
typeof x
- 함수:
typeof(x)
- 괄호가 있든 없든 결과는 동일
- 인수의 자료형을 나타내는 문자열을 반환한다.
- 연산자:
typeof undefined // "undefined"
typeof 0 // "number"
typeof 10n // "bigint"
typeof true // "boolean"
typeof "foo" // "string"
typeof Symbol("id") // "symbol"
// Math는 수학 연산을 제공하는 내장 객체이므로 "object"가 출력
typeof Math // "object"
typeof null // "object", 언어 자체의 오류이므로 null이 객체가 아님에 유의
// 피연산자가 함수면 "function"을 반환
// 그러나 함수형은 따로 없다. 함수는 객체형에 속한다.
// 오래전에 만들어진 규칙이었기 때문에 하위 호환성 유지를 위해 남겨진 상태
typeof alert // "function"
요약
- 자바스크립트에서는 8가지 기본 자료형이 있다.
숫자형
: 정수, 부동 소수점 숫자 등의 숫자를 나타낼 때 사용합니다. 정수의 한계는 ±253이다.bigint
: 길이 제약 없이 정수를 나타낼 수 있다.문자형
: 빈 문자열이나 글자들로 이뤄진 문자열을 나타낼 때 사용한다. 단일 문자를 나타내는 별도의 자료형은 없다.불린형
:true
,false
를 나타낼 때 사용null
:null
값만을 위한 독립 자료형입니다.null
은 알 수 없는 값을 나타낸다.undefined
:undefined
값만을 위한 독립 자료형입니다.undefined
는 할당되지 않은 값을 나타낸다.객체형
: 복잡한 데이터 구조를 표현할 때 사용심볼형
: 객체의 고유 식별자를 만들 때 사용
null
의 typeof 연산은"object"
인데, 이는 언어상 오류입니다. null은 객체가 아니다.
📌 참고
반응형
'프로그래밍 > JavaScript' 카테고리의 다른 글
[자바스크립트] 자바스크립트 형 변환 (type conversion) (0) | 2021.06.29 |
---|---|
[자바스크립트]alert, prompt, confirm (0) | 2021.06.29 |
[자바스크립트]변수와 상수(let, const) (0) | 2021.06.29 |
[자바스크립트] 엄격모드 (0) | 2021.06.29 |
[자바스크립트] JavaScript 작성 방법 (0) | 2021.06.29 |
댓글
이 글 공유하기
다른 글
-
[자바스크립트] 자바스크립트 형 변환 (type conversion)
[자바스크립트] 자바스크립트 형 변환 (type conversion)
2021.06.29 -
[자바스크립트]alert, prompt, confirm
[자바스크립트]alert, prompt, confirm
2021.06.29 -
[자바스크립트]변수와 상수(let, const)
[자바스크립트]변수와 상수(let, const)
2021.06.29 -
[자바스크립트] 엄격모드
[자바스크립트] 엄격모드
2021.06.29