072DATA

데이터 타입 및 undefined와 null - JavaScript 본문

Anything/끄적끄적

데이터 타입 및 undefined와 null - JavaScript

0720 2024. 7. 29. 19:19

 

안녕

 

오늘은 간단하게 데이터 타입과

없음을 가리키는 undefined와 null에 대해 정리하겠습니다.

 

 


데이터 타입

 

기본형 - 변경 불가능한 값

Number, String, Boolean, null, undefined, Symbol 

 

참조형 - 어떤 것을 참조하는 Object

Array, function, date, RegExp, Map, WeakMap, Set, WeakSet

 

데이터 타입은 값의 저장 방식과, 불변성 여부로 나뉘어집니다.

 

각 형의 복제 방식 

 

기본형 : 값이 담긴 주소값을 바로 복제

참조형 : 값이 담긴 주소값들로 이루어진 묶음을 가리키는 주소 값을 복제

 

불변성의 여부

 

기본형 : 불변성을 띔

참조형 : 불변성을 띄지 않음

 

- 불변하다는 것은 메모리 관점으로 보아야함

 

메모리의 데이터 단위

 

먼저 비트와 바이트에 대해 알아봅시다.

 


비트는 컴퓨터가 이해할 수 있는 가장 작은 단위입니다. (0, 1)
- 0과 1을 가지고 있는 메모리를 구성하기 위한 작은 조각을 의미

 

 

 

바이트는 0과 1만 표현하는 비트를 모두 찾기는 부담 되기에 새로운 단위로 만들어졌습니다.
1개 -> 2개 -> ... -> 8개( 새로운 단위 : byte)

 

 

 

그리고 메모리는 byte 단위로 구성 모든 데이터는 바이트 단위의 식별자인

메모리 주소 값을 통해 서로 구분이 됩니다.

 

 

java나 c와 같은 언어는 변수 형을 저장할 떄 변수의 크기까지도 개발자가 지정해줘야 하는데
javaScript는 정수형은 8byte로 통일 됩니다
( java는 byte, short, int, long 로 4개의 정수타입이 존재함.)

 

Undefinde와 Null

 

undefinednull은 둘다 "없음을 나타내는 값"이지만 서로 다른 없음을 가리킵니다.

 

 

Undefined

  • 변수에 값이 지정되지 않은 경우, 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할 때
  • .(dot) 이나 [] (대괄호)로 접근하려 할 때, 해당 데이터가 존재하지 않는 경우
  • 함수(function)에서 return 문이 없거나 호출되지 않는 함수의 실행 결과

자바스크립트는 "값이 있어야 하는데 왜 없지?" 할 때 undefined를 출력합니다.

 

 

 

코드 예시

var a;
console.log(a) // (1) 값을 대입하지 않은 변수에 접근
var obj = { a: 1 };
console.log(obj.a); // 1
console.log(obj.b); // (2) 존재하지 않는 property에 접근
// console.log(b) // 오류 발생

var func = function() { };
var c = func(); // (3) 반환값이 없는 fucntion
console.log(c); // undefined 출력

 

 

 

물론 없다를 명시적으로 표현할 때는 undefined를 사용하면 좋지 않다고 함 (보통 "없다"는 null로 통일

 

 

Null

  • 개발자가 없는 값이라고 명시했을 때 = null
  • 주의할 점으로 자바스크립트에서 typeof nullObject로 구분되는데 이는 javascript의 유명한 자체버그임

 

코드 예시

var n = null;
console.log(typeof n); //object
//동등 연산자( equality opertor)
console.log(n == undefined); // true
console.log(n == null);// true

//일치 연산자(identity operator)
console.log(n === undefined);
console.log(n === null);