微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何用更好的版本替换 Javascript 的 forEach?

如何解决如何用更好的版本替换 Javascript 的 forEach?

我的 Javascript 中不断出现 TypeError: Cannot read property 'forEach' of null,因为我没有在 document.querySelectorAll() 调用后检查 null。

有没有办法在 Javascript forEach() 对象上创建一个特殊的 null 并且让它什么都不做,从而消除错误?或者,我们可以将我使用的 forEach() 替换为 .forEach2() 以便 forEach2() 不会对 null 执行任何操作吗?

例如:

var $ = s => document.querySelectorAll.bind(document)(s).length > 1 ? document.querySelectorAll.bind(document)(s) : document.querySelector.bind(document)(s);

$('FOOTER EM').forEach(function(el,i){
  console.log(el);
});

如果FOOTER下没有EM,上面会为我生成一个错误,例如在运行时我有时会添加一些。

解决方法

有没有办法在 Javascript 空对象上创建一个特殊的 forEach(),并且让它什么都不做

不完全是一个特殊函数,您可以为此使用 optional chaining 方法调用:

$('FOOTER EM')?.forEach(el => console.log(el));
//            ^

但是,最好不要让您的 $ 函数 return null instead of an empty array

const $ = s => document.querySelectorAll(s);
// or
// const $ = document.querySelectorAll.bind(document);

for (const el of $('FOOTER EM')) console.log(el);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。