[].every(i => i instanceof Node) // -> true
Run Code Online (Sandbox Code Playgroud)
为什么当数组为空时,JavaScript中数组上的每个方法都返回true.我正在尝试做类似的断言,就像这样......
const isT = (val, str) => typeof val === str
const nT = (val, str) => !isT(val, str)
const is = {}
is.Undef = (...args) => args.every(o => isT(o, 'undefined'))
is.Def = (...args) => args.every(o => nT(o, 'undefined'))
is.Null = (...args) => args.every(o => o === null)
is.Node = (...args) => args.every(o => o instanceof Node)
is.NodeList = (...args) => args.every(n => n instanceof NodeList)
Run Code Online (Sandbox Code Playgroud)
但即使没有传递任何参数,这些仍然会返回true.