问题
Which browsers other than Firefox support Array.forEach()? Mozilla say it's an extension to the standard and I realise it's trivial to add to the array prototype, I'm just wondering what other browsers support it?
回答1:
The JavaScript article of Wikipedia lists the JS versions by browser. forEach is part of JavaScript 1.6. So it is supported indeed by most browsers, except Opera 9.02 (which I just tested). Opera 9.5 (which I just installed!) supports it, along with indexOf for Array.
Surprisingly, it is not official. I don't see its support in the page ECMAScript support in Opera 9.5. Perhaps it is an overlook or perhaps only a partial support they don't want to advertise.
回答2:
I just checked this for another question: JavaScript for...in vs for.
On kangax's ECMAScript 5 compatibility table, Array.forEach gets a 'yes' for all browsers except IE8.
As of September 2011, IE browser share on desktop devices is less than 40%, and at least 8% of browsers are IE 9.
In other words, Array.forEach is now supported by around 70% of desktop browsers. Obviously, this figure varies considerably, depending on territory and other factors -- some regions or countries (such as Brasil) have a higher proportion of Chrome users, for example, and some (such as China) have far more users on IE6 and IE8.
I haven't checked, but mobile support (on WebKit and Opera browsers) may be even higher.
回答3:
Since IE doesn't support it (not even v8), I use jQuery.each() -- http://docs.jquery.com/Utilities/jQuery.each
回答4:
All modern browsers but IE.
回答5:
The Microsoft AJAX client library adds this to the Array prototype so if you have that client library in your site then you'll have it for sure.
回答6:
If you need all browsers to support this and other JavaScript 1.6 to 1.8 functions, I would suggest using the customizable jPaq library. The functions are implemented in the way that was suggested by Mozilla.
来源:https://stackoverflow.com/questions/156696/which-web-browsers-natively-support-array-foreach