글 작성자: 망고좋아
반응형

 

자료형

  • 자바스크립트의 변수는 자료형에 관계없이 모든 데이터일 수 있다.
  • 변수는 어느 순간 문자열일 수 있고 순간엔 숫자가 될 수 있다.
// 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}`;
  • 따옴표는 세 종류가 있다.
    1. 큰따옴표: "Hello"
    2. 작은따옴표: 'Hello'
    3. 역 따옴표(백틱, 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 같은), 오직 문자형만 있다.

 

 

불린형

  • truefalse 두 가지 값밖에 없는 자료형

 

 

‘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은 객체가 아니다.

 

 

📌 참고

반응형