JSXとは? わかりやすく解説

JSX

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/06/09 14:48 UTC 版)

JSX
パラダイム オブジェクト指向[1]
登場時期 2012年5月31日 (2012-05-31)[1]
設計者 DeNA, Co., Ltd.
開発者 DeNA, Co., Ltd.
評価版リリース 0.9.89 / 2014年5月20日 (10年前) (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 {
     static function main(args : string[]) : void {
         log "Hello, world!";
     }
 }

JSXでは、継承関係にないクラスに総称的な操作をするためにはインターフェイスを使う。インターフェイスを使ったプログラムは以下のようになる[4]

// an example for class inheritance and interfaces

interface Flyable {
    abstract function fly() : void;
}

abstract class Animal {
    function eat() : void {
      log "An animal is eating!";
    }
}

class Bat extends Animal implements Flyable {
    override function fly() : void {
        log "A bat is flying!";
    }
}

abstract class Insect {
}

class Bee extends Insect implements Flyable {
    override function fly() : void {
        log "A bee is flying!";
    }
}

class _Main {
    static function main(args : string[]) : void {
        // fo bar
        var bat = new Bat();

        var animal : Animal = bat; // OK. A bat is an animal.
        animal.eat();

        var flyable : Flyable = bat; // OK. A bat can fly
        flyable.fly();

        // for Bee
        var bee = new Bee();

        flyable = bee; // A bee is also flyable
        flyable.fly();
    }
}

関連項目

脚注

外部リンク


JSX

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/11/17 15:55 UTC 版)

React」の記事における「JSX」の解説

JSXは、JavaScript構文対す拡張である。HTML外観似ているが、JSXは多く開発者よく知っている構文使用して構造化されたコンポーネント描画する方法提供するReactコンポーネントは、必須ではないが、通常はJSXを使用して書かれている。JSXはFacebookPHP向けに作成した拡張構文であるXHPに似ている。 JSXのコードの例: class App extends React.Component { render() { return (

); }} 入れ子要素 同じレベル複数要素は、上記
のように単一コンテナ要素ラップするか、配列として返す必要がある属性 JSXはHTMLによって提供されるもの反映するように設計され要素属性範囲提供するカスタム属性コンポーネントに渡すことができる。全ての属性コンポーネントによってpropsとして受け取られるJavaScriptの式 JavaScriptの式 (文ではない) は、{}を使うことによってJSXのコード内に記述することができる。

{10+1}

上記コード下記のように描画される

11

条件文 if文はJSX内で使用することはできないが、条件式使用することができる。以下の例の{ i === 1 ? 'true' : 'false' }では、iと1が等しいので、文字列'true'が描画されるclass App extends React.Component { render() { const i = 1; return (

{ i === 1 ? 'true' : 'false' }

); }} 関数とJSXは条件式内で使用することができる。 class App extends React.Component { render() { const sections = [1, 2, 3]; return (
{ sections.length > 0 ? sections.map(n => ) : null }
); }} 上記下記のように描画される JSXで書かれコードウェブブラウザ実行可能にするために、Babelなどのツール利用して事前に変換する必要がある。この処理は通常アプリケーション配置されるよりも前の、ソフトウェア構築している段階実行される

※この「JSX」の解説は、「React」の解説の一部です。
「JSX」を含む「React」の記事については、「React」の概要を参照ください。

ウィキペディア小見出し辞書の「JSX」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


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

辞書ショートカット

すべての辞書の索引

「JSX」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS