JavaScript JavaScriptの概要

JavaScript

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/03/16 10:24 UTC 版)

JavaScript
logo.jsによるJavaScriptの非公式ロゴ
パラダイム マルチパラダイム
登場時期 1995年 (29年前) (1995)
設計者 ブレンダン・アイク
開発者 ネットスケープコミュニケーションズMozilla Foundation
最新リリース ECMAScript 2023[1] / 2023年6月 (9か月前)
評価版リリース ECMAScript 2025[2]  / 2024年2月28日 (17日前)
型付け ダック・タイピング
主な処理系 JavaScriptCoreKJSNitroRhinoSpiderMonkeyV8ほか
方言 JScript
影響を受けた言語 SchemeSelfJavaLuaPerlAWKHyperTalkPython 
影響を与えた言語 DartObjective-Jフランス語版Google Apps ScriptTypeScript
プラットフォーム クロスプラットフォーム
ウェブサイト www.ecma-international.org/publications-and-standards/standards/ecma-262/
拡張子 .js.cjs.mjs
テンプレートを表示
HTML中のJavaScript。scriptタグで囲まれている。

プロトタイプベースオブジェクト指向スクリプト言語であるが、クラスなどのクラスベースに見られる機能も取り込んでいる。

利用される場面はウェブサイトウェブアプリケーション、バックエンド、デスクトップアプリケーションモバイルアプリケーションなど、ウェブブラウザからサーバ、デスクトップからスマートフォンまで多岐にわたっている。

Javaと似た名称を持つが、異なるプログラミング言語である(#歴史を参照)。

概要

JavaScriptはWebブラウザNetscape Navigatorに起源を持ち、現在では様々な用途に利用されるプログラミング言語である。

JavaScriptの言語仕様はECMAScriptとして標準化され、実装は各種のJavaScriptエンジンによって提供されている。JavaScriptエンジンの例としてChromium系ブラウザのV8Mozilla FirefoxSpiderMonkeySafariのJavaScriptCoreが挙げられる。

言語仕様を定義するECMAScriptのほかに、WebブラウザへアクセスするためのAPI仕様にDOMなどがある。これらはECMAScriptから独立しており、JavaScriptからも独立した概念である。

プログラミング言語としての特徴

JavaScriptは以下のような様々なスタイルのプログラミングが可能である。

これらを可能にしているプログラミング言語としての特徴に、以下のことが挙げられる。オブジェクト指向の面では、JavaScriptのオブジェクトはクラスベースではなくプロトタイプベースである[注釈 1]。関数型の面では、第一級関数をサポートし関数を第一級オブジェクトとして扱える。

AptanaEclipse, NetBeans, IntelliJ IDEAなどの統合開発環境はJavaScriptをサポートしており、大規模開発が可能になっている。さらにExt JSなどの本格的なGUIライブラリの登場により、デスクトップアプリケーションと遜色ないユーザインタフェースの構築が可能になった。

並行処理

JavaScriptではしばしば、ネットワークを介したリクエストのような "待ち" がある処理を行う[注釈 2]。これに対処するために非同期処理をサポートし並行処理が可能となる。標準で用意されている処理機能にも非同期処理されるものがある。

非同期処理を記述する方法としてコールバック関数がある。JavaScriptはコールバック関数記法をラップするPromisePromiseを同期的なコードのように記述できるAsync/await構文をもつ。

またJavaScriptは並列処理による並行処理もサポートしている(下記参照)。

並列処理

JavaScriptでは複数スレッドを用いた並列処理が可能である。共有メモリ上のバッファを表現するSharedArrayBuffer、バッファ操作オブジェクトAtomicsが定義されている。スレッドそのものの仕様は環境ごとに異なる(ECMAScriptでは定義されていない)。ブラウザの場合はWorkerNode.jsの場合はworker_threadsで定義されている。ただこの2環境ではほぼ共通の仕組みとなっており、例えばpostMessageによるメッセージングが両者でサポートされている。


注釈

  1. ^ 新しい (ES2015以降) JavaScriptではクラスの構文によりプロトタイプを意識せずにオブジェクト指向プログラミングをすることが可能になったが、言語設計はプロトタイプベースの設計を維持している。
  2. ^ もしも待ちの間にプログラムを停止/sleep させると、その間に他の処理をそのスレッドで行うことが出来ない(ブロッキング)。もしネットワークリクエストが返ってくるまでブロッキングしたとすると、その間ブラウザのレンダリングも停止してしまう。

出典

  1. ^ ECMAScript® 2023 Language Specification” (6月 2023). 2 3月 2024閲覧。
  2. ^ ECMAScript® 2025 Language Specification” (28 2月 2024). 2 3月 2024閲覧。
  3. ^ Effective JavaScript(翔泳社、2013)iii。
  4. ^ Marc Andreessen. “INNOVATORS OF THE NET: BRENDAN EICH AND JAVASCRIPT”. 2008年7月4日時点のオリジナルよりアーカイブ。2008年1月22日閲覧。
  5. ^ a b NETSCAPE AND SUN ANNOUNCE JAVASCRIPT, THE OPEN, CROSS-PLATFORM OBJECT SCRIPTING LANGUAGE FOR ENTERPRISE NETWORKS AND THE INTERNET”. 2008年5月28日時点のオリジナルよりアーカイブ。2008年1月22日閲覧。
  6. ^ ECMA 262, ISO/IEC 16262, JIS X 3060
  7. ^ JavaScript 第5版(オライリー・ジャパン、2007)P2。
  8. ^ ECMA-262 第5版 2.Conformance
  9. ^ WebExtensions, Browser Extensions
  10. ^ ECMAScript® 2017 Language Specification (ECMA-262, 8th edition, June 2017) Introduction
  11. ^ Python and JavaScript” (英語). Brendan's Roadmap Updates (2006年2月19日). 2010年1月25日時点のオリジナルよりアーカイブ。2007年9月5日閲覧。
  12. ^ 後藤大地 (2008年8月18日). “JavaScript 2.0はECMAScript 3.1ベースに、ECMAScript 4は譲歩”. マイナビニュース. 2013年3月1日時点のオリジナルよりアーカイブ。2022年4月11日閲覧。
  13. ^ Mozilla における ECMAScript 5 のサポート”. 2021年4月20日時点のオリジナルよりアーカイブ。2022年4月11日閲覧。
  14. ^ var – JavaScript – MDN”. The Mozilla Developer Network. 2012年12月22日閲覧。
  15. ^ let – JavaScript – MDN”. The Mozilla Developer Network. 2018年1月24日閲覧。
  16. ^ const – JavaScript – MDN”. The Mozilla Developer Network. 2018年1月24日閲覧。
  17. ^ ECMAScript Language Specification – ECMA-262 Edition 5.1”. Ecmaインターナショナル. 2012年12月22日閲覧。
  18. ^ Console Living Standard” (英語). WHATWG (2017年5月18日). 2017年5月24日閲覧。
  19. ^ console”. Mozilla Developer Network. Mozilla. 2013年4月6日閲覧。
  20. ^ “[https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters Rest parameters - JavaScript]”. Mozilla Developer Network. Mozilla. 2018年1月24日閲覧。
  21. ^ 2020-04-10現在 tc39 stage-4 (finished proposal). ECMAScript2020へ採用予定 tc39
  22. ^ Vanilla JS”. vanilla-js.com. 2020年6月16日時点のオリジナルよりアーカイブ。2021年9月4日閲覧。
  23. ^ JavaScript tracking – Piwik”. Piwik. 2012年3月31日閲覧。
  24. ^ 後藤大地 (2009年12月9日). “JavaScriptのブラウザ非互換に解決のみとおし”. journal.mycom.co.jp. 2009年12月9日閲覧。
  25. ^ John Resig. “Versions of JavaScript”. Ejohn.org. 2009年5月19日閲覧。






固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「JavaScript」の関連用語

JavaScriptのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



JavaScriptのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのJavaScript (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2024 GRAS Group, Inc.RSS