JS 데이터타입

nubim·2025년 1월 10일
  • JS는 한마디로 동적 타입 언어(dynamic/week type)
    • 선언이 아닌 할당에 의해 타입이 결정(타입추론/type inference)
    • 값을 할당하는 시점에 변수의 타입이 동적으로 결정됨
    • 재할당에 의해 변수의 타입은 언제든 동적으로 변할 수 있음
구분데이터 타입설명
숫자number 타입숫자, 정수와 실수 구분 없이 하나의 숫자 타입만 존재
문자열string 타입문자열
불리언boolean 타입논리적 참(true)과 거짓(false)
undefinedundefined 타입var 키워드로 선언된 변수에 아무값도 할당되지 않는 경우
nullnull 타입값이 없다는 것을 의도적으로 명시할 때 사용하는 값
심볼symbol 타입ES6에서 추가된 7번째 타입
객체object 타입객체, 함수, 배열 등

number type

var integer = 10; // 정수
var double = 10.12; // 실수
var negative = - 2 0 ; // 음의 정수

var binary = 0b01000001; // 2 진수
var o c t a l = 00101;   // 8 진수
var hex = 0x41; // 16진수

// 표기법만 다를 뿐 모두 같은 값이다.
console.log(binary); // 65
console.log(octal); // 65
console.log(hex); // 65
console.log(binary === octal); // true
console.log(octal === hex); // true

string type

var string;

string = '문자열' ; // 작은따옴표
string = "문자열"; // 큰따옴표
string = `문자열` ; // 백틱 (ES6)

var num1 = 1;
var num2 = 2;
var result = 3;
var string1 = num1 + ' 더하기 ' + num2 + ' 는 \ ' ' + result + '\' ';

Template literal

  • 줄바꿈 및 공백은 이스케이프 시퀀스 or ``(백틱)으로 표현
  • 멀티라인 문자열(multi-line string), 표현식 삽입(expression interpolation), 태그드 템플릿(tagged template) 제공
// 줄바꿈, 공백
var template = '<ul>\n\t<li><a href="#">Home</a></li>\n</ul>';
var template = `‹ul›
〈Li><a href="#">Homes/a></li)
</ul>`;

// 표현식 삽입
var num3 = 1;
var num4 = 2;
var result2 = 3;

var string1 = `${num1} 더하기 ${num4}${result2}`;

boolean

var foo = true;
console. log(foo); // true

foo = false;
console. log(foo); // false

undefined

  • ‘정의되지 않은’ 의미

null

  • 변수에 값이 없다는 것을 의도적으로 명시

symbol

  • ES6에서 추가됨
  • 다른 값과 중복되지 않는 유일무이한 값
// 심벌 값 생성
var key = Symbol('key');
console.log(typeof key); // symbol

// 객체 생성
var obj =  {}// 이름이 충돌할 위험이 없는 유일무이한 값인 심벌을 프로퍼티 키로 사용한다.
obj[key] = 'value';
console. log(obj[key]); // value

0개의 댓글