コンテンツにスキップ
Wikipedia

JSX (プログラミング言語)

出典: フリー百科事典『ウィキペディア(Wikipedia)』
曖昧さ回避 この項目では、DeNAが開発したプログラミング言語について説明しています。Metaが開発するJavaScriptの拡張構文については「JSX (JavaScript)」をご覧ください。
この記事の主題はウィキペディアにおける独立記事作成の目安を満たしていないおそれがあります 目安に適合することを証明するために、記事の主題についての信頼できる二次資料を求めています。なお、適合することが証明できない場合には、記事は統合されるか、リダイレクトに置き換えられるか、さもなくば削除される可能性があります。
出典検索?"JSX" プログラミング言語 – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL
(2025年6月)
JSX
パラダイム オブジェクト指向 [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.github.io
拡張子 .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();
}
}

関連項目

[編集 ]

脚注

[編集 ]

外部リンク

[編集 ]
概念
エンジン
コンパイラ
デバッガ
エディタ
サーバーサイド
フレームワークライブラリ
ユニットテスト
Docジェネレータ
コード解析
パッケージ管理
アプリケーションバンドラー
関連技術
人物

AltStyle によって変換されたページ (->オリジナル) /