const isIterable = x =>
x?.[Symbol.iterator] instanceof Function;isIterable([]) // true
isIterable('') // true
isIterable(document.scripts) // true
isIterable(Array().keys()) // true
isIterable((function*(){})()) // true
isIterable() // false
isIterable(null) // false
isIterable(1) // false
isIterable({}) // false
isIterable(isIterable) // false