javascript - 一旦谓词返回假,每个方法都不会停止

时间:2020-12-31 02:43:59

标签: javascript

我试图了解 every 方法在 JavaScript 中的真正作用。

我有以下块代码:

const data = null;
const arr = [
  data,
  data.name
];

const outcome = arr.every(Boolean);
console.log(outcome); // TypeError: Cannot read property 'name' of undefined

我认为它会返回 false,因为数组中的第一项是 falsy 值,但是它抛出了 TypeError: Cannot read property 'name' of undefined 的错误。

Array.prototype.every() 的文档说:

<块引用>

every 方法对数组中存在的每个元素执行一次提供的回调函数,直到找到回调返回假值的那个。如果找到这样的元素,every 方法会立即返回 false。

所以我不确定我是否误解了它。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

错误发生在您定义 arr 时,而不是在 every 中。 datanull,因此 data.name 无效,这就是您收到 TypeError: Cannot read property 'name' of undefined 错误消息的原因。