问题
ECMAScript 5 is in its final draft as I write this; It is due to include a strict mode which will prevent you from assigning to the global object, using eval, and other restrictions. (John Resig's Article is a good introduction.)
This magical sanity-saving mode is triggered by including the string "use strict" at the top of your file (or function.) However, in older environments, "use strict" is a no-op. If you add "use strict" and don't test it in a strict environment, you could be leaving a time-bomb of not-really-strict code that will break when it really hits a strict environment.
Which environments actually respect "use strict"?
回答1:
Update:
See my compatibility table.
Original response:
None as of now.
Raphael Speyer was working on Mozilla implementation for Rhino during this summer, and afaik, their implementation is pretty close to completion.
I know (based on info from ES-discuss list) that Microsoft is planning to include some of ES5 features into upcoming versions of IE and they might very well be working on strict mode implementation right now (as you probably know, IE8 already includes some of ES5 features, like Object.defineProperty
).
There's also Google's Caja project which somewhat emulates behavior of strict mode in some of its variations (Valija, Cajita, etc).
Crockford also recently added this option to JSLint, but I'm not sure if it actually triggers any additional validations (as per ES5-strict rules).
回答2:
Now that it's actually released, Firefox 4 is the winner of "first browser to support ES5 Strict Mode." Now you can start using it, as long as you test in Firefox 4.
Safari 5.1+ and Chrome 13+ Also support strict mode.
The first One is in: Besen. Implemented in Delphi. I think it's stand-alone, but I'm not sure. But it does support strict mode.
Found via this compatibility table.
Jurassic claims to support ES5 Strict Mode.
回答3:
ECMAscript 5 strict mode requires these versions for major browsers (or higher):
Chrome 13.0
Safari 5.1
Firefox 4.0
Internet Explorer 10.0
Opera 11.6
No, IE9 does not have strict support, it's new to version 10 or later.
回答4:
Opera 11.60 already fully supports ECMAScript 5.1 and it's strict mode variation. See @kangax compatibility table.
来源:https://stackoverflow.com/questions/1423889/which-javascript-environments-support-ecmascript-5-strict-mode-aka-use-stri