let x;
console.log(x); // undefined
let x;
console.log(x); // undefined

/* 값을 할당하면 할당한 값을 반환합니다. */
x = 1;
console.log(x); // 1
function x(a, b) {
    a + b; // return 키워드로 반환하는 값 없음
}

console.log(x(1, 2)); // undefined

function y(a, b) {
    return a + b; // return 키워드로 반환하는 값 있음
}

console.log(y(1, 2)); // 3
const x = (a, b) => {
    a + b; // return 키워드로 반환하는 값 없음
}

console.log(x(1, 2)); // undefined

const y = (a, b) => {
    return a + b; // return 키워드로 반환하는 값 있음
}

console.log(y(1, 2)); // 3
const obj = {};
console.log(obj.prop); // undefined
const obj = {};
console.log(obj.prop); // undefined

/* 프로퍼티를 생성하고 값을 할당 */
obj.prop = 1;
console.log(obj.prop); // 1
let arr = [];
console.log(arr[0]); // undefined
let arr = [];
console.log(arr[0]); // undefined

/* 배열에 요소를 할당 */
arr[0] = 1;
console.log(arr[0]); // 1
let x;
console.log(typeof x); // "undefined"
let x;

if (x === undefined) {
    console.log("true로 평가됩니다.");
} else {
    console.log("false로 평가됩니다.");
}
// 출력: "true로 평가됩니다."
let x;

if (x) {
    console.log("true로 평가됩니다.");
} else {
    console.log("false로 평가됩니다.");
}
// 출력: "false로 평가됩니다."

// Boolean() 함수를 사용해서 평가
console.log(Boolean(x)); // false
/* 값이 undefined인 변수 x */
let x;

if (x === undefined) {
    console.log("true로 평가됩니다.");
} else {
    console.log("false로 평가됩니다.");
}
// 출력: "true로 평가됩니다."

/* 선언되지 않은 변수 */
if (y === undefined) { // Uncaught ReferenceError: y is not defined

}
/* 값이 undefined인 변수 x */
let x;

if (x === undefined) {
    console.log("true로 평가됩니다.");
} else {
    console.log("false로 평가됩니다.");
}
// 출력: "true로 평가됩니다."

/* 선언되지 않은 변수 */
if (typeof y === "undefined") { 
    console.log("true로 평가됩니다.");
} else {
    console.log("false로 평가됩니다.");
}

// 출력: "true로 평가됩니다."
/* 값이 할당되지 않은 변수 x */
let x;

if (x === undefined) {
    console.log("true로 평가됩니다.");
} else {
    console.log("false로 평가됩니다.");
}
// 출력: "true로 평가됩니다."

/* 선언되지 않은 변수 y */
try {
    y; // 변수에 접근 시도
    console.log('변수가 선언되었습니다.');

} catch (error) {
    console.log('변수가 선언되지 않았습니다.'); 
}
// 출력: "변수가 선언되지 않았습니다."
let x = undefined;
let x = null;
undefined 값의 브라우저 호환성
속성과 값
데스크탑 Chrome
Chrome
데스크탑데스크탑 Edge
Edge
데스크탑 Firefox
Firefox
Safari
Safari
undefined 1 12 1 1