web-dev-qa-db-ja.com

IE8はどのJavaScriptバージョンをサポートしていますか?

ウィキペディアによると、IE8はJavascript 1.5のみをサポートしています。つまり、IE8はJavascriptバージョン1.6、1.7、1.8、1.9を完全に無視しているということです。

信用すべきですか?本当ですか?

40
MatteoSp

まあ、実際にはIE実装は JScript と呼ばれ、JavaScript(TM)はMozillaの実装です。

JScriptとJavaScriptは2つの ECMAScript ベースの方言です。

JavaScript 1.5は ECMAScript 3rd Edition Standard に準拠しています。以降のバージョンのJS 1.6、1.7、および1.8では、その標準版にない言語機能が導入され、しばしばMozillaと呼ばれます拡張子

これらはECMA標準の一部ではないため、JScriptにはこれらの機能がありません。

43
CMS

ここ から取得したこのテストでは、Internet Explorer 8 64ビットで1.3を返します。

<SCRIPT Language="JavaScript1.3">
jsver = "1.3";
</SCRIPT>
<SCRIPT Language="JavaScript1.4">
jsver = "1.4";
</SCRIPT>
<SCRIPT Language="JavaScript1.5">
jsver = "1.5";
</SCRIPT>
<SCRIPT Language="JavaScript1.6">
jsver = "1.6";
</SCRIPT>
<SCRIPT Language="JavaScript1.7">
jsver = "1.7";
</SCRIPT>
<SCRIPT Language="JavaScript1.8">
jsver = "1.8";
</SCRIPT>

<BODY>

<SCRIPT LANGUAGE="JavaScript">
document.write("<B>Your browser supports JavaScript version " + jsver + ".</B>")
</SCRIPT>

</body>
</html>
18
Pekka

IEはJavaScriptをまったくサポートしていません。 「JavaScript」は、特にECMAScript標準のMozillaの実装を指します。この標準は、もともとはNetscape/Mozillaの言語に関する取り組みに基づいて作成されましたが、その後分岐しました。 IEのECMAScriptの実装は「JScript」と呼ばれ、Mozillaが作成した拡張機能の多くをサポートしていません。

ECMAScriptのバージョンIEが目指しているのは、第3版の標準であり、これもJavaScript 1.5が対象としたバージョンであるため、Opera、Safari、および=のJavaScriptエンジンが同様と見なされています。 Chromeすべてがこの同じバージョンを対象としています。すべての実装にはバグがあり、仕様に完全には適合していないことを意味しますが、一般にECMAScriptの第3版は、今日機能するための確かなベースラインです。

ECMAScriptの次のバージョンは、最近標準化された第5版です。すべてのブラウザがこの仕様から機能を取得しており、将来的には広くサポートされるようになることが期待されています。特定の「JavaScript」バージョンには対応していません。特に、以前はJavaScript 1.5にあったいくつかの便利なStringおよびArrayメソッドを選択しますが、標準では、JSに対するMozillaの構文拡張のほとんどを見つけることができません。

15
bobince

はい、そうです(少なくとも、サポートされている言語機能に関しては)。これは、Javascript 1.6コードを使用して簡単に確認できます。

alert([1,2,3].indexOf(2));

IE 8はエラーをスローします。

IE 8は、Javascriptの新しいバージョンで追加された機能の一部をサポートする可能性があります。IEには、規格外のものが多く含まれているため、たまたま後の追加と同じです。

3
Guffa