## **undefined: 무엇이고 어떻게 사용하는지**
**정의**
`undefined`는 JavaScript에서 선언되지 않은 변수 또는 값이 할당되지 않은 변수에 액세스할 때 반환되는 특수한 값입니다. 즉, `undefined`는 값이 없는 것을 의미합니다.
**사용 사례**
`undefined`는 다음과 같은 여러 상황에서 사용될 수 있습니다.
* **선언되지 않은 변수:** `let` 또는 `const`를 사용하여 변수를 선언하지 않으면 변수는 자동으로 `undefined`로 설정됩니다.
“`js
let name;
console.log(name); // undefined
“`
* **값이 할당되지 않은 변수:** 변수를 선언했지만 값을 할당하지 않으면 변수는 `undefined`로 유지됩니다.
“`js
let name = “John”;
name = undefined;
console.log(name); // undefined
“`
* **프로퍼티 또는 메서드가 없는 객체:** 객체에 없는 프로퍼티 또는 메서드에 액세스하면 `undefined`가 반환됩니다.
“`js
const person = {
name: “John”,
};
console.log(person.age); // undefined
“`
**strict mode에서의 undefined**
strict mode에서 변수를 선언하지 않고 사용하면 오류가 발생합니다. strict mode는 개발자에게 코드의 문제를 더 쉽게 식별할 수 있도록 도와줍니다.
“`js
“use strict”;
name = “John”; // ReferenceError: name is not defined
“`
**undefined와 null의 차이점**
`undefined`와 `null`은 모두 JavaScript에서 값이 없는 것을 나타내는 값이지만, 다음과 같은 차이점이 있습니다.
* `undefined`는 선언되지 않은 변수 또는 값이 할당되지 않은 변수의 결과입니다.
* `null`은 명시적으로 할당된 값입니다(예: `let name = null`).
**주의 사항**
`undefined`를 다음과 같은 경우에 사용하지 않는 것이 좋습니다.
* 변수에 값이 없음을 나타내기 위해
* 함수의 반환 값을 나타내기 위해
* 조건문의 조건으로 사용하기 위해
이러한 상황에서는 대신 `null`, `false` 또는 다른 적절한 값을 사용하는 것이 좋습니다.
**결론**
`undefined`는 JavaScript에서 선언되지 않은 변수 또는 값이 할당되지 않은 변수를 나타내는 특수한 값입니다. 선언되지 않은 변수, 값이 할당되지 않은 변수, 객체에 없는 프로퍼티 또는 메서드에 액세스할 때 사용됩니다. strict mode에서는 undefined를 사용하지 않고 변수를 선언하지 않은 경우 오류가 발생합니다. `undefined`와 `null`은 값이 없는 것을 나타내는 값이지만, 명시적으로 할당된 값인지 여부에 따라 차이가 있습니다.