[ch3] 자바스크립트의 기본 데이터 타입

Maru·2022년 7월 17일
0
post-thumbnail

이 글은 저서 [인사이드 자바스크립트]를 공부하고자 작성되었으며, 핵심 개념과 새롭게 알게 된 내용을 위주로 기록하였습니다.

이 장에서 다루는 내용

  • 기본 데이터 타입 (숫자, 문자열, 불린, null, undefined)

3.1 자바스크립트 기본 타입


1) JS의 기본 타입 5가지

  • 숫자
  • 문자열
  • 불린값
  • null
  • undefined

이러한 타입의 특징은 그 자체가 하나의 값을 나타낸다는 것.

✔️ JS는 느슨한 타입 체크 언어이다

C언어는 엄격한 타입 체크 언어다.
변수를 선언할 때 char, int, float와 같은 예약어를 이용해 변수의 데이터 타입을 지정한다.

하지만 js는 변수를 선언할 때 타입을 미리 정하지 않고,
var, const, let 과 같은 키워드로 변수를 선언한다.




3.1.1 숫자

자바스크립트는 하나의 숫자형만 존재한다.

모든 숫자를 64비트 부동 소수점 형태로 저장하기 때문이다.
이는 C언어의 double 타입과 유사하다.
정수나 실수 구분 없이 그 값을 바로 저장할 수 있다.

🚨 주의해야할 점

  • 모든 숫자가 실수 취급되므로, 나눗셈 (/) 연산에 주의해야한다.
var num = 5 / 2;

console.log(num) // 2.5
console.log(Math.floor(num)) // 2

3.1.2 문자열


JS에서 한번 정의된 문자열은 바뀌지 않는다.

문자열 생성

  • singleQuote(') 나 doubleQuote(") 모두 가능
  • C의 char과 같이 문자 하나만을 별도로 나타내는 데이터 타입은 없다.

🚨 주의해야할 점

  • JS에서 한번 생성된 문자열은 읽기만 가능하며, 수정은 불가능하다.
var str = "test";
console.log(str[0]) // t

str[0] = 'T'
console.log(str[0]) // t

위와 같이 변경해도, 에러는 발생하지 않지만 값이 변경되진 않는다.

Q. 왜 안바뀌지???
->



3.1.3 불린값


true와 false 타입이 존재한다.

typeof에서 boolean으로 출력된다.



3.1.4 null과 undefined


공통점

'값이 비어있음'을 뜻한다.

차이점

  • undefined : 값이 할당되지 않음. 타입이자을 나타낸다.
  • null : 명시적으로 값이 비어있음을 나타낸다.

🚨 주의해야할 점

typeof로 null 타입 변수의 타입을 확인하면 그 결과가 null이 아니라 object로 확인된다.

그러므로 null 타입 변수인지 확인하려면 typeof 연산자가 아니라 일치 연산자(===)를 사용해 변수의 값을 직접 확인해야한다.

null은 객체 타입이 아닌 원시 타입(기본 타입)이 맞다.

이렇게 뜨는 이유는 js 초기의 버그인데, 버그를 수정하게되면 이미 지금의 typeof 코드로 작성된 웹페이지가 고장날 수 있기 때문이다.

console.log(typeof nullVar) // object
console.log(nullVar === null); // true면 null 타입 

-> 참고 : null의 타입이 객체로 뜨는 이유


profile
함께 일하고 싶은 개발자

0개의 댓글