일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Cloud
- JavaScript
- til
- Database
- HTML
- jQuery
- Github Pages
- bootstrap
- 배포
- data
- Boostrap
- Fetch
- nosql
- github
- REACT
- useEffect
- supabase
- IntersectionObserver
- W
- Protocol
- SQL
- API
- http
- TMDB
- url
- CSS
- this
- firestoredatabase
- web
- db
- Today
- Total
072DATA
데이터 타입 및 undefined와 null - JavaScript 본문
안녕
오늘은 간단하게 데이터 타입과
없음을 가리키는 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
undefined와 null은 둘다 "없음을 나타내는 값"이지만 서로 다른 없음을 가리킵니다.
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 null은 Object로 구분되는데 이는 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);
'Anything > 끄적끄적' 카테고리의 다른 글
콜백 함수에 대한 정리 (0) | 2024.08.09 |
---|---|
async와 await 짧은 요약 (0) | 2024.08.02 |
일급 객체로서의 함수 (0) | 2024.08.01 |
자바스크립트에서 this란 (0) | 2024.07.31 |
n번째 글자를 기준으로 오름차순 정렬하기 - JavaScript (0) | 2024.07.26 |