쯔이's Dev

JS(3). undefined VS null 본문

JS/변수선언

JS(3). undefined VS null

jjhim531 2024. 12. 23. 19:37
반응형

JavaScript에서 undefined는 시스템에서 자동으로 할당되는 값이며,

개발자가 직접 사용할 경우 혼란을 초래하거나 디버깅이 어려울 수 있다.


왜 undefined를 직접 사용하는 것을 지양해야 할까?

자동 할당된 값과 혼동 가능성:

  • JavaScript는 변수가 선언되었지만 값이 초기화되지 않은 경우 자동으로 undefined를 할당한다.
let value;
console.log(value); // undefined (자동으로 할당됨)

 

개발자가 undefined를 직접 할당하면,

이것이 시스템에 의해 자동 설정된 값인지, 개발자가 의도적으로 넣은 값인지 구분하기 어려워질 수 있다.

let value = undefined; // 직접 할당

의도 명확성 부족:

  • undefined를 명시적으로 사용하면, 코드에서 이 값이 "아직 설정되지 않은 상태"인지, 아니면 "의도적으로 비어 있는 상태"인지를 명확히 알기 어렵다.
  • 대신 null을 사용하면 개발자가 "의도적으로 비어 있음"을 표현할 수 있다.
let user = null; // 사용자가 현재 비어 있음을 명시적으로 표현
  1. 디버깅 문제:
    • 디버깅 중 undefined를 볼 때, 이것이 실수로 값을 할당하지 않은 것인지, 개발자가 명시적으로 설정한 것인지 혼란스러울 수 있다.
    • 따라서, undefined는 시스템에서만 사용되도록 남겨두고, 개발자는 다른 방식으로 값을 초기화하는 것이 좋다.

< 초기화 방법 >

1. 초기 값을 명확히 설정

  • 값이 비어 있음을 의도적으로 나타내고 싶다면, null을 사용하자.
let user = null; // 초기값을 명확히 설정

2. 기본값 사용

  • 기본값을 명시적으로 설정하면 undefined 대신 명확한 상태를 표현할 수 있습니다.
let count = 0; // 숫자의 기본값
let items = []; // 빈 배열
let options = {}; // 빈 객체

3. 함수 기본값

  • 함수 매개변수에 기본값을 지정하면 undefined를 방지할 수 있습니다.
function greet(name = "Guest") {
    console.log(`Hello, ${name}`);
}

greet(); // 출력: Hello, Guest

undefined와 null의 올바른 사용 기준

  1. undefined는 시스템이 사용할 수 있도록 남겨둠:
    • 변수 선언 시 초기화하지 않았을 때 시스템이 자동으로 할당.
    • 값이 없는 매개변수나 반환값으로 시스템에서 사용.
  2. null은 개발자가 명시적으로 사용:
    • 값이 없음을 명확히 표현해야 할 때 사용.
    • 예: 데이터베이스 조회 결과가 없을 때.

결론

undefined는 JavaScript 엔진이 자동으로 처리하는 값으로 남겨두고,

개발자가 직접 undefined를 설정하는 것은 지양해야 한다.

초기 상태를 명시적으로 표현해야 할 때는

null이나 적절한 기본값(예: 빈 배열, 빈 객체, 숫자 0 등)을 사용하는 것이 좋습니다.

728x90
반응형

'JS > 변수선언' 카테고리의 다른 글

JS(4). 객체선언  (0) 2024.12.24
JS(2). == vs ===  (0) 2024.12.22
JS(1) - 변수선언  (0) 2024.12.21