Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I believe it's a joke. At least I opened these comments thinking it was a joke akin to VanillaJS framework[1]. querySelectorAll returns an empty array if there are no matches, you don't need fancy string messages or errors for that.

[1] http://vanilla-js.com/



> querySelectorAll returns an empty array if there are no matches, you don't need fancy string messages or errors for that.

An empty NodeList[1] to be precise, which is sort of kind of like an array in that it has a length property and you can access its elements with index notation (`nodeList[0]`), but it doesn't inherit from Array.prototype, so it doesn't support methods like `forEach` or `map`.

[1] https://developer.mozilla.org/en-US/docs/Web/API/NodeList


Indeed. Though still, NodeList has the length property with which you can check for "emptiness" the same as with an array, that's what I meant to say.

Speaking of which, there are few features in ES2015 that make NodeList more palatable:

1. Iterables. NodeList is iterable and you can use, among others, the for..of construction to iterate over its content.

2. There is the Array.from method for turning array-like objects into true arrays. Not much different from our usual method of calling [].slice.call in this particular case, yet it's a bit shorter, standardized, and has a few additional perks, like accepting map function as the second argument.


At least in new versions of Chrome, NodeList is iterable, so you can use forEach and map on it.

https://medium.com/@devlucky/nodelist-object-is-finally-an-i...


[ ...document.querySelectorAll('nodes') ] will convert it to a real array ;)


You got it, it's just a joke :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: