Notice
Recent Posts
Recent Comments
Link
쯔이's Dev
JS(3). undefined VS null 본문
반응형
JavaScript에서 undefined는 시스템에서 자동으로 할당되는 값이며,
개발자가 직접 사용할 경우 혼란을 초래하거나 디버깅이 어려울 수 있다.
왜 undefined를 직접 사용하는 것을 지양해야 할까?
자동 할당된 값과 혼동 가능성:
- JavaScript는 변수가 선언되었지만 값이 초기화되지 않은 경우 자동으로 undefined를 할당한다.
let value;
console.log(value); // undefined (자동으로 할당됨)
개발자가 undefined를 직접 할당하면,
이것이 시스템에 의해 자동 설정된 값인지, 개발자가 의도적으로 넣은 값인지 구분하기 어려워질 수 있다.
let value = undefined; // 직접 할당
의도 명확성 부족:
- undefined를 명시적으로 사용하면, 코드에서 이 값이 "아직 설정되지 않은 상태"인지, 아니면 "의도적으로 비어 있는 상태"인지를 명확히 알기 어렵다.
- 대신 null을 사용하면 개발자가 "의도적으로 비어 있음"을 표현할 수 있다.
let user = null; // 사용자가 현재 비어 있음을 명시적으로 표현
- 디버깅 문제:
- 디버깅 중 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의 올바른 사용 기준
- undefined는 시스템이 사용할 수 있도록 남겨둠:
- 변수 선언 시 초기화하지 않았을 때 시스템이 자동으로 할당.
- 값이 없는 매개변수나 반환값으로 시스템에서 사용.
- 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 |