joken-前端工程师

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

概论

  • null 就是一个变量为空,未赋值,比如var abc=null;
  • undefined 就是未定义,就是属性还未声明,比如 var abc={}; abc.d 就是undefind未定义,或者变量声明了,确还未赋值过。
  • 一般一个变量声明了,但是空值,用null比较适合,比如 var abc=null;

image
image

undefined 出现的场景参考

// 变量声明了,但没有赋值
var i;
i // undefined

// 调用函数时,应该提供的参数没有提供,该参数等于 undefined
function f(x) {
  return x;
}
f() // undefined

// 对象没有赋值的属性
var  o = new Object();
o.p // undefined

// 函数没有返回值时,默认返回 undefined
function f() {}
f() // undefined

chat

在 TypeScript 中,定义对象属性为空时选择 null 还是 undefined,通常取决于你的具体需求和代码风格。以下是两者的对比和建议:

null vs undefined

类型 含义 用途
null 显式地表示“没有值” 表示一个已存在的变量,其值为空
undefined 表示变量未被赋值或未定义的状态 表示一个属性或变量尚未初始化

使用建议

  1. 使用 null

    • 当你想显式地表示一个属性的值是“空”或“无”时。
    • 示例:表示某个数据可能被清空或重置。
    interface User {
        name: string;
        age: number | null; // 表示年龄可以是 null
    }
    
  2. 使用 undefined

    • 当属性是可选的,或者在某些情况下尚未初始化时。
    • 示例:表示一个属性没有被赋值。
    interface User {
        name: string;
        age?: number; // 表示年龄是可选的,可以是 undefined
    }
    

实际使用示例

使用 null

interface User {
    name: string;
    age: number | null;
}

const user: User = {
    name: "Alice",
    age: null, // 明确表示年龄未设定
};

使用 undefined

interface User {
    name: string;
    age?: number; // 年龄是可选属性
}

const user: User = {
    name: "Bob",
    // age 未定义,默认为 undefined
};

总结

  • 使用 null:当需要明确表示“空”或“无值”时。
  • 使用 undefined:当表示属性可选或尚未赋值时。

根据你的具体需求选择合适的类型。

posted on 2024-07-10 21:17  joken1310  阅读(6)  评论(0编辑  收藏  举报