乐趣区

关于javascript:容易疏漏的地方记录

对 find 的后果进行判空

const items = [
  {
    id: 1,
    name: 'Ben',
    age: 25,
  },
  {
    id: 2,
    name: 'Lily',
    age: 20,
  },
];

const targetItem = items.find((item) => item.age === 50);
console.log(targetItem.name);
// Error: Cannot read properties of undefined (reading 'name')

下面的代码中,咱们在 find 的返回值上间接拜访属性,会有可能导致异样。

因为在没有找到指标时,find的返回值会是 undefined,在undefined 上拜访对象,就会抛出异样。

所以,遵循简略的策略,永远对 find 的返回值进行判空,防止意外状况。

const targetItem = items.find((item) => item.age === 50);
console.log(targetItem?.name);
// undefined
退出移动版