4 ms·
>The toString trick is pretty outdated, in ES5 you can also do: > thing instanceof Array instanceof is ES3. > That's not even standard, just a Mozilla "diale
by gsnedders 11y ago
>The toString trick is pretty outdated, in ES5 you can also do:
> thing instanceof Array
instanceof is ES3.
> That's not even standard, just a Mozilla "dialect". I don't think that's supported by any engines other than SpiderMonkey and predecessors.
To quote MDC:
> The for each...in statement is deprecated as the part of ECMA-357 (E4X) standard. E4X support has been removed, but for each...in will not be disabled and removed because of backward compatibility considerations. Consider using for...of instead. (Please refer to bug 791343.)
- lqdc13 11y agoSo now we have ... for each (var x in a) ... <<Firefox only??>> for (var x of a) ... <<ES6>> for (var x in a) ... a.forEach(callback[, thisArg]) Knowing JS, each of them have their own quirks probably.
- kolme 11y agoYes: for each (...) -> It's not supported anywhere, so forget it. for (var x in a) -> x is the key, so it's kind of inconvenient. You have to watch out for inherited properties/methods so one should check for a.hasOwnProperty(x). for (var x of a) -> It has mostly no gotchas. Only poor browser support. .forEach only works with arrays and from ES5 on. You have the good old "this"/scope gotcha.