데이터 타입-4(feat.코어 자바스크립트)

고규식·2021년 12월 7일
0
post-thumbnail

6. undefined와 null

자바스크립트에는 '없음'을 나타내는 값이 두 가지가 있습니다.
undefined와 null
의미는 같지만 미세하게 다르고, 사용하는 목적도 다르다.

🔥 undefined

사용자가 명시적으로 지정할 수 있지만(비추천), 값이 존재하지 않을 때 자바스크립트 엔진이 자동으로 부여한다.
1. 값을 대입하지 않은 변수, 즉 데이터 영역의 메모리 주소를 지정하지 않은 식별자에 접근할때.
2. 객체 내부의 존재하지 않는 프로퍼티에 접근하려고 할때.
3. return 문이 없거나 호출되지 않는 함수의 실행 결과.

var a;
consol.log(a); // undefined : 값을 대입하지 않은 변수. 1번 이유

var obj = { a : 1 };
console.log(obj.a); // 1
console.log(obj.b); // undefiend : 객체 내부의 존재하지 않는 프로퍼티 접근. 2번 이유
console.log(b); ReferenceError : b is not defined

var func = function(){ };
var c = func(); // undefined : 반환(return) 값이 없으면 undefined를 반환으로 간주

배열의 경우 특이한 동작을 한다

var arr1 = [];
arr1.length = 3;
console.log(arr1); // [empty x 3]

var arr2 = new Array(3)'
console.log(arr2); // [empty x 3]

var arr3 = [undefined, undefined, undefined];
console.log(arr3); // [undefined,undefined,undefined]

비어있는 요소(empty)와 'undefined'를 할당한 요소는 출력 결과부터 다르게 나옵니다.
비어있는 요소(empty)는 순회와 관련된 많은 배열 메서드들의 순회 대상에서 제외 됩니다.

사용자가 직접 undefined를 할당하지 않는다.
값이 없으면 null을 씁시다.

🔥 null

값이 비어있음을 명시적으로 나타내는 'null'

7. 정리

  • 변수는 변경 가능한 데이터가 담길 수 있는 공간.
  • 식별자는 그 변수의 이름을 말합니다.
  • 변수를 선언하면 컴퓨터는 우선 메모리의 빈 공간에 식별자를 저장하고, 그 공간에 자동으로 undefined 를 할당합니다.
  • 변수에 기본형 데이터 를 할당하려고 하면 별도의 공간(데이터 영역)에 데이터를 저장하고 그 주소를 변수의 값 영역에 할당합니다.
  • 변수에 참조형 데이터 를 할당하려고 하면 참조형 데이터 내부 프로퍼티들을 위한 변수 영역을 별도로 확보해서 확보된 주소를 변수에 연결하고, 확보한 변수 영역에 각 프로퍼티의 식별자를 저장하고, 각 데이터를 별도의 공간에 저장해서 그 주소를 식별자들과 매칭 시킵니다.
  • 없음 을 나타내는 값은 두 가지가 있는데, undefined는 어떤 변수에 값이 존재하지 않을 경우.
  • null은 사용자가 명시적으로 "없음"을 표현하기 위해 대입하는 값입니다.
  • 사용자가 없음을 나타내기 위해 "undefined"를 명시적으로 대입하는것은 삼가자.
profile
잠실사는 주니어 개발자

0개의 댓글