5

ご存知のように、JavaScriptにはすべてのJavaキーワードが予約されています。誰かが理由を知っていますか?JavaScriptは、これらのJavaキーワードの使用を推奨していませんが、識別子として使用すると正常に機能するように見えます。

4

4 に答える 4

4

話によると、彼らが JavaScript (元は Oak と呼ばれていたと思います (元の名前は正しくないという以前の記述で言語を混同したようです)) を開発していたとき、Netscape はそれを開発するために Sun と提携しました。Java コミュニティを惹きつけるために、彼らは JavaScript を Java のようにしたかったので、Java 開発者がより快適に感じられるようになりました。

言語を設計する際に覚えておかなければならないことは、言語の新しいバージョンが既存のコードを壊すことなく、キーワードを定義するのは実際には 1 回だけだということです。最初に単語を予約して使用しない方が、後で予約してみるよりもはるかに簡単です。これは、スクリプトを開発する人がスクリプトを実行するブラウザを制御できない JavaScript のようなものに特に当てはまります (これは今ではわかっていますが、もっと悪いことになる可能性があります)。新しいブラウザーに採用された次のバージョンの JavaScript が、新しいキーワードを予約したために、突然アプリケーションを実行できなくなることがわかったら、どれほど腹立たしいことか想像できますか?

于 2011-01-31T19:51:50.000 に答える
4

Javascript は名前を借りること以外は Java とは何の関係もないので、実際には Java キーワードではありません。

名前は、言語の将来の拡張で必要になる場合に備えて予約されています。ECMAScript 言語仕様から:

「次の単語は、提案された拡張機能のキーワードとして使用されているため、これらの拡張機能が将来採用される可能性を考慮して予約されています...」

于 2011-01-31T19:54:33.413 に答える
3

おそらく、これらのキーワードを変数名として使用することによる潜在的な混乱を避けるためです。

つまり、Java 開発者が という名前の変数または関数を使用して JavaScript コードの一部を理解しようとしていると想像してみてくださいpublic

それが可能な場合でも、明確にするために、私はそうしないことをお勧めします。

于 2011-01-31T19:45:32.667 に答える
3

おそらく、JavaScript の開発者は、これらの単語が JavaScript の将来のリリースで追加機能に使用される可能性があると想定していました。下位互換性の問題を防ぐために、これらの単語は事前に予約済みとしてマークされていました。

于 2011-01-31T19:47:53.310 に答える