Javascript의 자료형 1) 원시 자료형

Jiwon Yoo·2023년 2월 17일
0

프론트엔드

목록 보기
4/38

아주 간단한 식이었는데도 불구하고 값이 나오지 않거나, 분명 맞게 작성했는데도 콘솔창이 빨갛게 물든 경험이 있는가?
그렇다면 자료형이 올바르게 되어있는지 확인해볼 필요가 있다.

Javascript의 자료형

자바스크립트의 자료형은 크게 원시(primitive) 자료형과 객체(object)형으로 나뉘는데, 대표적인 원시 자료형에는 아래와 같은 종류가 있다.

  • String 타입 (문자형)
  • Number 타입 (숫자형)
  • Boolean 타입 (논리형)
  • Null
  • Undefined
  • (BigInt, Symbol 타입도 있지만 생략)

String 타입

String 타입은 문자열을 나타낼 때 사용하는데, 이때 문자열을 따옴표로 묶어 변수에 할당한다.

//큰 따옴표, 작은 따옴표 구분없이 사용 가능
let nike = "Just do it"; //큰 따옴표 🙆
let adidas = 'Impossible is nothing'; //작은 따옴표 🙆

❗️ String 타입 작성 시, 작은 따옴표와 역 따옴표(backtick)를 헷갈리지 않도록 주의해야한다.

//작은 따옴표
let nike = 'Just do it';
console.log(nike) //결과: 'Just do it'

//역 따옴표(backtick)
let nikeSlogan = `Nike Slogan: ${nike}`;
console.log(nikeSlogan) //결과: 'Nike Slogan: Just do it'

역 따옴표는 문자열 중간에 ${...} 형태로 감싼 변수나 표현식을 넣을 수 있게 하는 기능을 한다.
큰따옴표나 작은따옴표를 사용하면 중간에 표현식을 넣을 수 없기 때문에 이 방법은 꼭 역 따옴표를 사용해야한다.

Number 타입

Number 타입은 정수 및 부동소수점 숫자(floating point number)를 나타낸다. 그리고 일반적인 숫자 외에 Infinity, -Infinity, NaN같은 '특수 숫자 값(special numeric value)' 또한 포함된다.

let num1 = 123;
let num2 = Number("123"); //문자형을 숫자형으로 변경
console.log(num2); // => 123

❗️ Number 메소드를 이용해 문자형 데이터를 숫자형 데이터로 변경이 가능하다.

Boolean 타입

Boolean 타입은 true와 false 두 가지 값밖에 없다. 이때 true는 긍정, false는 부정을 의미합니다.

let bool1 = true; //false
let bool2 = 1>=3; //false
let bool3 = Boolean("123"); //true

❗️ Boolean 메소드로 데이터를 입력하면 논리형 데이터인 true 또는 false를 반환하는데, 해당 메소드 0, null, undefined, 공백(" ")을 제외한 모든 데이터에 true를 반환한다.

Null

null 값은 지금까지 소개한 자료형 중 어느 자료형에도 속하지 않는 값이다. 그렇기 때문에 null 값은 오로지 null 값만 포함하는 별도의 자료형을 만든다. 다른 언어에선 null을 '존재하지 않는 객체에 대한 참조’나 '널 포인터(null pointer)'를 나타낼 때 사용하지만 자바스크립트에선 null을 ‘존재하지 않는(nothing)’ 값, ‘비어 있는(empty)’ 값, ‘알 수 없는(unknown)’ 값을 나타내는 데 사용한다.

Undefined

undefined 값도 null 값처럼 자신만의 자료형을 형성한다. undefined는 '값이 할당되지 않은 상태’를 나타낼 때 사용하기 때문에 변수는 선언했지만 값을 할당하지 않았다면 해당 변수에 undefined가 자동으로 할당된다.

let age;
console.log(age); // => undefined

typeof 연산자

typeof 연산자는 지정한 데이터 또는 변수에 저장된 자료형을 알고 싶을 때 사용한다.

typeof "foo" // 'string'
typeof 0 // 'number'
typeof true // 'boolean'
typeof null // "object"
typeof undefined // 'undefined'

❗️ typeof null의 결과를 보자. null은 별도의 고유한 자료형을 가지는 특수 값으로 객체가 아니지만, 하위 호환성을 유지하기 위해 이런 오류를 수정하지 않고 남겨뒀다. 언어 자체의 오류이므로 null이 객체가 아님에 유의가 필요하다.

profile
새싹 개발자 🌱

0개의 댓글