2013-08-14 11 views
8

これによると、http://caniuse.com/use-strict'use strict'はIEバージョン8/9ではサポートされていません。IE 8/9で 'use strict'を使用しても安全ですか

私の質問は、IE 8/9やブラウザに「use strict」を使用するのは本当に安全ですか?それは私のコードを破るだろうか?

+0

注意事項にはすべて記事の詳細が記載されています。 http://msdn.microsoft.com/en-us/library/br230269(v=vs.94).aspx – user3348703

答えて

15

"use strict"; は、ブラウザがコードを実行する限り、IE8/9で問題を起こさないはずです。これはあなたのスクリプトでstrictモードをオンにすることができることを意味http://ejohn.org/blog/ecmascript-5-strict-mode-json-and-more/

外部ソースを(これは、strictモードを実装していないブラウザに問題がないことを確認するために、そのように設計されました)今日は - それは、最悪の場合、古いブラウザでは副作用がありません。

注:(:var x = {}; x.break = trueが、それはIE9で動作するにもかかわらず、IE8で動作しませんたとえば)ジェレミーはコメントで指摘したように、技術的に有効ですが、IE8に失敗するいくつかの表現があります。

+4

***ほとんどの場合** * strictモード以外では失敗するstrictモードでは、いくつかの構文が許可されています。特に、オブジェクトプロパティとしてキーワードを使用する。 'myObject.break = true'はstrictモードで動作し、strictモード以外では失敗します。 –

+0

@JeremyJStarcherそれは 'var x = {}; x.break = true'はIE9で動作します(ちょうどf12でテストしました)。 IE9にアクセスできますか?確認できますか? – SheetJS

+0

がIE7で失敗する(Quirksモード) - 開発ツールを使用して変更し、再試行してください。私のポイントは、strictモードが非strictモードと常に100%互換であるとは限らないことです。 –

3

ええ、それはうまくいくはずです。

use directivesは、下位互換性があることを意味します。それらをサポートしていないブラウザは、それ以上参照されていないリテラルのStringが表示されます。だから、彼らはそれを通り過ぎて行くでしょう。

でも、コードを有効にしているかどうかにかかわらず、コードをテストすることができます。

関連する問題