質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

15080閲覧

IEにおけるJScriptとJavaScriptの関係を教えてください

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

1グッド

0クリップ

投稿2016/08/30 03:58

編集2016/08/30 04:12

現在、JavaScriptについて勉強しております。

JavaScriptは、Netscapeが開発したが、Microsoftにライセンスを供与しなかったため、Microsoftは、独自にJScriptを開発しました。

しかし、ブラウザごとに実装が異なったため、互換性を高めるためにECMAScriptという仕様を定め、各ブラウザはECMAScriptに準拠することで互換性があるという認識です。

ただ、現在のIEにおけるJScriptとJavaScriptの関係がよくわかりません。

Wikipediaを見ると、JScriptはスクリプト言語です。

JScript(ジェイ・スクリプト)は、マイクロソフト社製のスクリプト言語であり、Microsoft Windows 上で動作する。

上記ページ内のバージョンの項目に記載されている通り、IE9からは JScript ではなく Chakra を使用しているとの記載があります。

Chakraを見ると、JavaScriptエンジンという記載があります。

ChakraはマイクロソフトのウェブブラウザとWindowsランタイム上のアプリケーションで使用されるJavaScriptエンジンのコードネーム[1]である。

ECMAScriptを見ると、下記のようにIE9からは「JavaScript (Chakra)」と記載されております。

Internet Explorer

JScript (Internet Explorer 8 まで)
JavaScript (Chakra)

■質問1

IE9からは、呼び方を「JScript」から「JavaScript」に変更しただけで、「JavaScript」をサポートしてるわけではなく、「JScript」をサポートしてるということでしょうか?
現在のIEにおけるJScriptとJavaScriptの関係について教えてください。

■質問2

IEだと、下記の3つは問題なく動くけど、他のブラウザだと最初の記述は動作しないという認識であってますでしょうか?
(今どき、language属性は使わないと思いますが・・・、type属性で指定しようと思ったけどtext/jscriptというMIMEタイプが見当たらない)

<script language="JScript"> </script>
<script language="JavaScript"> </script>
<script type="text/javascript"> </script>

※補足

ちなみに、私の環境(Windows7)で下記のファイルをIE11とChromeの両方で開きましたが、両方ともHelloと表示されました。
Chromeで表示されないと予想していましたが、表示されたので謎が深まるばかりです。
Chromeが優秀だから表示されたんですかね・・・

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>test</title> </head> <body> <script language="JScript"> <!-- document.write("Hello"); // --> </script> </body> </html>
maisumakun👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

まず、「JScript」には2通りの意味があって、「JavaScriptのMicrosoft的な変種」というプログラミング言語としての意味と、「Microsoftの作ったJavaScript処理エンジン」という処理系としての意味があります。

ブラウザ上のことだけを考えると、JScriptも他のブラウザとの互換を取っていった結果、JavaScriptとの違いはバージョンを追うごとに縮小し、IE 9ともなれば誤差の範囲となっています(呼び方の違いにすぎないと言っていいでしょう)。また、JavaScript処理系も、IE 9からはChakraという別系統のものに置き換えられています。

一方で、WSHのように、ブラウザを離れたところでスクリプトを実行できる仕組みがWindowsにはありますが、こちらは基本的に「JScript」と呼ばれて、「JavaScript」とはあまり呼ばれません。

なお、Chromeで<script language="jscript">を実行できた理由ですが、現在のブラウザで使われる言語がほぼJavaScript一択なので、HTML5では<script>type属性がない場合にはJavaScriptとみなされることになっていて、その仕様通りにJavaScriptとして実行しているからです。

投稿2016/08/30 04:28

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/08/30 04:57

いつも回答ありがとうございますm(__)m なるほど、2つの意味があるんですね。 私は、プログラミング言語という意味で捉えていたため、理解できなかったんですね。 また、Chromeでも表示された理由は、ブラウザ側でJavaScriptとして解釈してくれたからなんですね。 お陰様で理解できました^^ ありがとうございましたm(__)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問