我一直在Javascript中获取TypeError: Cannot read property 'forEach' of null
,因为在document.querySelectorAll()
调用后我没有检查null。
有没有一种方法可以在Javascriptnull
对象上创建一个特殊的forEach()
,并使其不执行任何操作,从而消除错误?或者,我们可以用.forEach2()
替换我使用的forEach()
,这样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,比如在运行时我有时会添加一些EM,那么上面的内容会给我带来一个错误。
有没有办法在Javascript null对象上创建一个特殊的
forEach()
,并使其不执行
不是一个特殊的函数,您可以为此使用可选的链接方法调用:
$('FOOTER EM')?.forEach(el => console.log(el));
// ^
然而,最好不要让$
函数返回null
,而不是空数组:
const $ = s => document.querySelectorAll(s);
// or
// const $ = document.querySelectorAll.bind(document);
for (const el of $('FOOTER EM')) console.log(el);