JSX (プログラミング言語)
表示
出典: フリー百科事典『ウィキペディア(Wikipedia)』
曖昧さ回避
この項目では、DeNAが開発したプログラミング言語について説明しています。Metaが開発するJavaScriptの拡張構文については「JSX (JavaScript)」をご覧ください。
| パラダイム | オブジェクト指向 [1] |
|---|---|
| 登場時期 | 2012年5月31日 (2012年05月31日)[1] |
| 設計者 | DeNA, Co., Ltd. |
| 開発者 | DeNA, Co., Ltd. |
| 評価版リリース | 0.9.89 / 2014年5月20日 (11年前) (2014年05月20日)[2] |
| 型付け | 静的型付け [1] |
| 影響を受けた言語 | JavaScript |
| プラットフォーム | クロスプラットフォーム |
| ライセンス | MIT License |
| ウェブサイト |
jsx |
| 拡張子 | .jsx |
| テンプレートを表示 | |
JSX は、DeNAによって開発されたウェブアプリケーション向けのプログラミング言語である。ECMAScript 4から影響を受けた構文を持ち、静的型付けなのが特徴。ウェブブラウザ組み込みのスクリプト言語であるJavaScriptのデメリットを解消することを目的に作られている。またJSXのソースコードは最適化されたJavaScriptコードに変換して実行され、同等のJavaScriptプログラムと比較して10%以上高速になるとされる[3] [1] 。
なお、Reactで用いられるJavaScriptの拡張構文JSXや、Adobe社製ソフトウェアに搭載されているJavaScriptマクロは、同じく「JSX」という名前がつけられているが、全くの別物である。
言語仕様
[編集 ]JSXの特徴は以下の点が挙げられる。
- クラス構文のサポート
- モジュール機構
- テンプレート(総称型)のサポート
- 関数オーバーロードのサポート
- アロー関数式
- レキシカルスコープをもつthis
- デフォルト引数
- 最適化で削除されるassert文
- プロファイラ(スマートフォンでも利用可能)
- source mapのサポート
- nullを許容しないプリミティブ型(number, boolean, string)
例
[編集 ]Hello worldプログラムは、以下のとおりである[4] 。JSXプログラムは _Main.main(:string[]) : void がアプリケーションのエントリポイントとなる。
class_Main{ staticfunctionmain(args:string[]):void{ log"Hello, world!"; } }
JSXでは、継承関係にないクラスに総称的な操作をするためにはインターフェイスを使う。インターフェイスを使ったプログラムは以下のようになる[4] 。
// an example for class inheritance and interfaces interfaceFlyable{ abstractfunctionfly():void; } abstractclassAnimal{ functioneat():void{ log"An animal is eating!"; } } classBatextendsAnimalimplementsFlyable{ overridefunctionfly():void{ log"A bat is flying!"; } } abstractclassInsect{ } classBeeextendsInsectimplementsFlyable{ overridefunctionfly():void{ log"A bee is flying!"; } } class_Main{ staticfunctionmain(args:string[]):void{ // fo bar varbat=newBat(); varanimal:Animal=bat;// OK. A bat is an animal. animal.eat(); varflyable:Flyable=bat;// OK. A bat can fly flyable.fly(); // for Bee varbee=newBee(); flyable=bee;// A bee is also flyable flyable.fly(); } }
関連項目
[編集 ]脚注
[編集 ]- ^ a b c d "高速なJavaScriptコードを生成できるWebアプリケーション向け言語「JSX」が公開される". OSDN (2012年5月31日). 2012年6月1日閲覧。
- ^ Releases · jsx/JSX - GitHub
- ^ http://www.slideshare.net/kazuho/jsx-optimizer
- ^ a b "JSX Tutorial". JSX. 2012年6月1日閲覧。
外部リンク
[編集 ]- 公式ウェブサイト (英語)
スタブアイコン
この項目は、FOSSに関連した書きかけの項目 です。この項目を加筆・訂正などしてくださる協力者を求めています(Portal:FOSS)。