目次
TypeScript
PureScript
CoffeeScript
ホームページ ウェブフロントエンド jsチュートリアル 10 の興味深い JavaScript スクリプト言語

10 の興味深い JavaScript スクリプト言語

Dec 05, 2017 am 10:35 AM
javascript js 言語

JavaScript がすべてのタスクに最適な言語ではないことは誰もが知っています。また、複雑なアプリケーションに関しては、JavaScript が適していない可能性があります。この問題を回避するために、いくつかの新しい言語と既存の言語のバリエーションが作成されており、それらはすべて、JavaScript コードを記述したり、言語の制限を考慮したりすることなく、ブラウザーで実行できるコードを生成します。

Dart は古典的なオブジェクト指向言語であり、すべてがオブジェクトであり、あらゆるオブジェクトがクラスのインスタンスです (オブジェクトは関数としても機能します)。これは、ブラウザ、サーバー、モバイル デバイス用のアプリケーションを構築するために特別に設計されています。これは Google によって管理されており、Google の収益を生み出す最も重要な製品である AdWords の次世代ユーザー インターフェースを推進する言語であり、それ自体が AdWords が大規模に威力を発揮する証拠です。

この言語は、ブラウザーで使用するために JavaScript に変換することも、Dart VM によって直接解釈して実行することもでき、サーバー アプリケーションを構築することもできます。モバイル アプリは Flutter SDK を使用して作成できます。

複雑なアプリケーションには、タスク用に特別に設計された成熟したライブラリと言語機能のセットも必要であり、Dart にはそれらがすべて含まれています。人気のあるライブラリの例としては、Angular の Dart バージョンである AngularDart があります。

これにより、型をあまり押し付けがましくせずに型安全なコードを書くことができますが、型は推論できるため、その必要はありません。これにより、詳細を深く考えずに迅速なプロトタイプを作成できますが、プロトタイプが機能したら、型を追加してより堅牢にすることができます。

仮想マシンでの同時プログラミングに関して、Dart は共有メモリ スレッド (Dart はシングルスレッドです) の代わりに、いわゆる Isolates を独自のメモリ ヒープとともに使用し、メッセージを使用して通信を実現します。 ブラウザーでは、このイベントは少し異なります。新しい分離を作成する代わりに、新しい Workers を作成します。

// Example extracted from dartlang.org

import 'dart:async';
import 'dart:math' show Random;

main() async {
  print('Compute π using the Monte Carlo method.');
  await for (var estimate in computePi()) {
    print('π ≅ $estimate');
  }
}

/// Generates a stream of increasingly accurate estimates of π.
Stream<double> computePi({int batch: 1000000}) async* {
  var total = 0;
  var count = 0;
  while (true) {
    var points = generateRandom().take(batch);
    var inside = points.where((p) => p.isInsideUnitCircle);
    total += batch;
    count += inside.length;
    var ratio = count / total;
    // Area of a circle is A = π⋅r², therefore π = A/r².
    // So, when given random points with x ∈ <0,1>,
    // y ∈ <0,1>, the ratio of those inside a unit circle
    // should approach π / 4. Therefore, the value of π
    // should be:
    yield ratio * 4;
  }
}

Iterable<Point> generateRandom([int seed]) sync* {
  final random = new Random(seed);
  while (true) {
    yield new Point(random.nextDouble(), random.nextDouble());
  }
}

class Point {
  final double x, y;
  const Point(this.x, this.y);
  bool get isInsideUnitCircle => x * x + y * y <= 1;
}
ログイン後にコピー

Dart を使い始めましょう

TypeScript

TypeScript は JavaScript のスーパーセットです。有効な JavaScript プログラムは有効な TypeScript プログラムでもありますが、後者は静的型付けを追加します。そのコンパイラーは、ES2015 以降から現在の実装へのトランスレーターとしても機能するため、常に最新の機能を利用できます。

他の多くの言語とは異なり、TypeScript は JavaScript の精神をそのまま維持し、コードの信頼性を向上させる機能のみを追加します。これらは、リファクタリング プロセスを支援する静的アナライザーなどの特殊なツールを有効にすることで、JavaScript の作成をより楽しくする型アノテーションと他の型関連機能です。さらに、タイプを追加すると、アプリケーションのさまざまなコンポーネント間のインターフェイスが改善されます。

型推論がサポートされているため、最初からすべての型を記述する必要はありません。簡単なソリューションを作成し、すべてのタイプを追加してコードに自信を得ることができます。

TypeScript は、交差型、共用体型、型エイリアス、判別共用体、型ガードなどの高度な型もサポートしています。これらの型はすべて、TypeScript ドキュメント サイトの「Advanced Types」ページで確認できます。

React を使用している場合は、React タイプを追加することで JSX をサポートすることもできます。

class Person {
    private name: string;
    private age: number;
    private salary: number;

    constructor(name: string, age: number, salary: number) {
        this.name = name;
        this.age = age;
        this.salary = salary;
    }

    toString(): string {
        return `${this.name} (${this.age}) (${this.salary})`;
    }
}
ログイン後にコピー

Elm は、JS、HTML、CSS にコンパイルできる純粋な関数型プログラミング言語です。 Elm だけを使用してサイト全体を構築できます。これにより、React のような JavaScript フレームワークの優れた代替品となります。これを使用して構築されたアプリケーションは、仮想 DOM ライブラリを自動的に使用するため、非常に高速になります。その大きな利点の 1 つは、データ フローを忘れてデータ宣言とロジックに集中できる組み込みアーキテクチャです。

Elm では、すべての関数は純粋です。つまり、指定された入力に対して常に同じ出力を返します。あなたが指定しない限り、他のことはできません。たとえば、リモート API にアクセスするには、外部と通信するための command (コマンド) 関数と、応答をリッスンするための subscription (サブスクリプション) を作成します。純粋さのもう 1 つのポイントは、値が不変であることです。何かが必要な場合、古い値を変更するのではなく、新しい値を作成します。

Elm の導入は段階的に行うことができ、ports を使用して JavaScript や他のライブラリと通信することができます。 Elm はまだバージョン 1 に達していませんが、複雑で大規模なアプリケーションで使用されており、複雑なアプリケーションにとって実行可能なソリューションとなっています。

Elm の最も魅力的な機能の 1 つは、初心者に優しいコンパイラーであり、読みにくいメッセージを生成する代わりに、コードの修正に役立つコードを生成します。言語を学習している場合は、コンパイラー自体が非常に役立ちます。

module Main exposing (..)

import Html exposing (..)


-- MAIN


main : Program Never Model Msg
main =
    Html.program
        { init = init
        , update = update
        , view = view
        , subscriptions = subscriptions
        }



-- INIT


type alias Model = String


init : ( Model, Cmd Msg )
init = ( "Hello World!", Cmd.none )


-- UPDATE


type Msg
    = DoNothing


update : Msg -> Model -> ( Model, Cmd Msg )
update msg model =
    case msg of
        DoNothing ->
            ( model, Cmd.none )


-- VIEW


view : Model -> Html Msg
view model =
    p [] [text model]


-- SUBSCRIPTIONS


subscriptions : Model -> Sub Msg
subscriptions model =
    Sub.none
ログイン後にコピー

Elm を使い始めましょう

PureScript

PureScript は、Phil Freeman によって作成された、純粋に関数型で厳密に型指定されたプログラミング言語です。これは、利用可能な JavaScript ライブラリとの強力な互換性を提供することを目的としています。精神的には Haskell に似ていますが、JavaScript のコアは維持されています。

PureScript 的一个强项是它的极简主义。它不包括在其他语言中被认为是必需的功能的任何库。例如,不是编译器本身包含生成器和 promises,而是你可以使用特定的库来完成任务。你可以为所需功能选择想要的实现,这样可以在使用 PureScript 时实现高效和个性化的体验,同时保持生成的代码尽可能小。

其编译器的另一个显著特征就是能够在保持与 JavaScript 的兼容性的同时, 用库和工具生成整洁和可读的代码。

像其他语言一样,PureScript 有自己的构建工具叫做 Pulp,可以与 Gulp 进行比较, 但是用于以这种语言编写的项目。

关于类型系统,与 Elm不同,即另一种 ML 式的语言,PureScript 支持高级类型的功能,如取自 Haskell 的 higher-kinded types(高级类类型) 以及 type classes(类型类), 从而允许创建复杂的抽象。

module Main where

import Prelude
import Data.Foldable (fold)
import TryPureScript

main =
    render $ fold
      [ h1 (text "Try PureScript!")
      , p (text "Try out the examples below, or create your own!")
      , h2 (text "Examples")
      , list (map fromExample examples)
      ]
  where
    fromExample { title, gist } =
      link ("?gist=" <> gist) (text title)

    examples =
      [ { title: "Algebraic Data Types"
        , gist: "37c3c97f47a43f20c548"
        }
      , { title: "Loops"
        , gist: "cfdabdcd085d4ac3dc46"
        }
      , { title: "Operators"
        , gist: "3044550f29a7c5d3d0d0"
        }
      ]
ログイン後にコピー

 

开始使用 PureScript

CoffeeScript

CoffeeScript 是一种语言,旨在公开 JavaScript 的良好部分,同时提供更整洁的语法并保留语义。虽然该语言的流行度近年来一直在减弱,但它正在改变方向,现在正在获得一个新的主要版本,为 ES2015+ 的功能提供支持。

你用 CoffeeScript 编写的代码被直接翻译为可读的 JavaScript 代码,并保持与现有库的兼容性。从版本 2 开始,编译器将产生与最新版本的 ECMAScript 兼容的代码。例如,每次你使用一个类,你就获得一个 JavaScript 类。另外,如果你使用 React,也有好消息: JSX 与 CoffeeScript 兼容。

以上内容介绍了10个有趣的语言,这些语言都可以转换成JavaScript代码在浏览器中执行,也可以在Node.js这样的平台上执行。希望能帮助到大家。

相关推荐:

如何用php传递数组给js脚本

JavaScript实现浏览器用户代理检测脚本的方法详解

JavaScript中关于表单脚本的实用技巧

以上が10 の興味深い JavaScript スクリプト言語の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

iPhoneで言語を変更する3つの方法 iPhoneで言語を変更する3つの方法 Feb 02, 2024 pm 04:12 PM

iPhone が最も使いやすい電子機器の 1 つであることは周知の事実であり、その理由の 1 つは、自分好みに簡単にカスタマイズできることです。個人設定では、iPhone のセットアップ時に選択した言語とは別の言語に変更できます。複数の言語に精通している場合、または iPhone の言語設定が間違っている場合は、以下で説明するように変更できます。 iPhoneの言語を変更する方法[3つの方法] iOSでは、ユーザーはさまざまなニーズに合わせてiPhoneの優先言語を自由に切り替えることができます。 Siri との対話言語を変更して、音声アシスタントとのコミュニケーションを容易にすることができます。同時に、ローカルキーボードを使用する場合、複数の言語を簡単に切り替えることができ、入力効率が向上します。

推奨: 優れた JS オープンソースの顔検出および認識プロジェクト 推奨: 優れた JS オープンソースの顔検出および認識プロジェクト Apr 03, 2024 am 11:55 AM

顔の検出および認識テクノロジーは、すでに比較的成熟しており、広く使用されているテクノロジーです。現在、最も広く使用されているインターネット アプリケーション言語は JS ですが、Web フロントエンドでの顔検出と認識の実装には、バックエンドの顔認識と比較して利点と欠点があります。利点としては、ネットワーク インタラクションの削減とリアルタイム認識により、ユーザーの待ち時間が大幅に短縮され、ユーザー エクスペリエンスが向上することが挙げられます。欠点としては、モデル サイズによって制限されるため、精度も制限されることが挙げられます。 js を使用して Web 上に顔検出を実装するにはどうすればよいですか? Web 上で顔認識を実装するには、JavaScript、HTML、CSS、WebRTC など、関連するプログラミング言語とテクノロジに精通している必要があります。同時に、関連するコンピューター ビジョンと人工知能テクノロジーを習得する必要もあります。 Web 側の設計により、次の点に注意してください。

Win10コンピュータの言語を中国語に設定するにはどうすればよいですか? Win10コンピュータの言語を中国語に設定するにはどうすればよいですか? Jan 05, 2024 pm 06:51 PM

コンピュータ システムをインストールしただけで、システムが英語になっている場合があります。この場合、コンピュータの言語を中国語に変更する必要があります。それでは、win10 システムでコンピュータの言語を中国語に変更するにはどうすればよいでしょうか?具体的な操作方法を説明します。 。 win10 でコンピューターの言語を中国語に変更する方法 1. コンピューターの電源を入れ、左下隅にあるスタート ボタンをクリックします。 2. 左側の設定オプションをクリックします。 3. 開いたページで「時刻と言語」を選択します 4. 開いたら、左側の「言語」をクリックします 5. ここで、希望するコンピューター言語を設定できます。

PHP および JS 開発のヒント: 株価ローソク足チャートの描画方法をマスターする PHP および JS 開発のヒント: 株価ローソク足チャートの描画方法をマスターする Dec 18, 2023 pm 03:39 PM

インターネット金融の急速な発展に伴い、株式投資を選択する人がますます増えています。株式取引では、ローソク足チャートは一般的に使用されるテクニカル分析手法であり、株価の変化傾向を示し、投資家がより正確な意思決定を行うのに役立ちます。この記事では、PHP と JS の開発スキルを紹介し、株価ローソク足チャートの描画方法を読者に理解してもらい、具体的なコード例を示します。 1. 株のローソク足チャートを理解する 株のローソク足チャートの描き方を紹介する前に、まずローソク足チャートとは何かを理解する必要があります。ローソク足チャートは日本人が開発した

エージェントの境界の探索: 大規模な言語モデル エージェントのパフォーマンスを包括的に測定および改善するためのモジュール式ベンチマーク フレームワークである AgentQuest エージェントの境界の探索: 大規模な言語モデル エージェントのパフォーマンスを包括的に測定および改善するためのモジュール式ベンチマーク フレームワークである AgentQuest Apr 11, 2024 pm 08:52 PM

大規模モデルの継続的な最適化に基づいて、LLM エージェント - これらの強力なアルゴリズム エンティティは、複雑な複数ステップの推論タスクを解決する可能性を示しています。自然言語処理から深層学習に至るまで、LLM エージェントは徐々に研究や業界の焦点になりつつあります。LLM エージェントは、人間の言語を理解して生成するだけでなく、戦略を策定し、多様な環境でタスクを実行し、API 呼び出しやコーディングを使用して構築することもできます。ソリューション。この文脈において、AgentQuest フレームワークの導入はマイルストーンであり、LLM エージェントの評価と進歩のためのモジュール式ベンチマーク プラットフォームを提供するだけでなく、研究者にこれらのエージェントのパフォーマンスを追跡および改善するための強力なツールも提供します。より細かいレベル

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

vivox60proの言語表示を変更する方法 vivox60proのシステム言語設定方法 vivox60proの言語表示を変更する方法 vivox60proのシステム言語設定方法 Mar 23, 2024 am 09:06 AM

1. 電話機設定メニューの[システム管理]をクリックします。 2. [言語]オプションをクリックします。 3. 使用するシステム言語を選択します。

jsとvueの関係 jsとvueの関係 Mar 11, 2024 pm 05:21 PM

js と vue の関係: 1. Web 開発の基礎としての JS、2. フロントエンド フレームワークとしての Vue.js の台頭、3. JS と Vue の補完関係、4. JS と Vue の実用化ビュー。

See all articles