日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

10 個最終編譯成 JavaScript 的腳本語言

瀏覽:35日期:2023-11-12 10:17:15

與簡單的網站相比,現代應用程序有更多 不同的需求 。但是,瀏覽器是一個擁有(大部分)固定技術的平臺,而且JavaScript仍然是web應用程序的核心語言;需要在瀏覽器中運行的任何應用程序都必須用該語言實現。

我們都知道JavaScript并不是實現所有任務的最佳語言,當遇到復雜的應用時,它可能就不太適合。為了避免這個問題,已經創建了幾種新的語言和現有語言的變體,它們都生成可以在瀏覽器中運行的代碼,而無需編寫任何JavaScript代碼,也不用考慮語言的局限性。

文中介紹了10個有趣的語言,這些語言都可以轉換成JavaScript代碼在瀏覽器中執行,也可以在Node.js這樣的平臺上執行。

Dart 是一種經典的面向對象語言,其中所有事物都是對象,任何對象都是類的實例(對象也可以充當函數)。它專門用于構建瀏覽器、服務器和移動設備的應用程序。它由谷歌維護,并且是 驅動下一代 AdWords 用戶界面的語言 , 而 AdWords 是給谷歌創造收入的最重要的產品,這本身就是在證明其大規模的力量。

該語言可被翻譯成 JavaScript ,以便在瀏覽器中使用,或者由 Dart VM 直接解釋執行,這也允許你構建服務器應用程序。可以使用 Flutter SDK 創建移動應用程序。

復雜的應用程序還需要一組成熟的庫和專門為此任務而設計的語言特性,而 Dart 包含所有這些庫和特性。一個流行的庫的例子是 AngularDart ,Angular 的 Dart 版本。

它允許你編寫類型安全的代碼,而不會太有侵入性;你可以編寫類型,但你不需要這樣做,因為它們可以被推斷出來。這允許創建快速原型,而不必過度考慮細節,但一旦你的原型可以工作,你可以添加類型以使其更加健壯。

關于虛擬機中的并發編程,Dart 使用所謂的 Isolates 連同它們自己的內存堆,來代替共享內存線程(Dart 是單線程的),使用消息實現通信。 在瀏覽器中,這個事件稍有不同:你并不是創建新的 isolates, 而是創建新的 Workers 。

// Example extracted from dartlang.orgimport ’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 = π?r2, therefore π = A/r2. // 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 也支持高級的類型,如 intersection(交集) 類型 、 union(并集、聯合) 類型、 類型別名、 可區分聯合(discriminated union)和類型保護。你可以在 TypeScript 文檔 站點的 高級類型 頁面中查看所有這些類型。

如果你使用 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、 HTM L和 CSS。 你可以只使用 Elm 構建一個完整的站點。這使之成為 JavaScript 框架如 React 的一個很好的替代方案。用它構建的應用程序會自動使用虛擬 DOM 庫,使其速度非??臁F湟淮髢烖c是內置的體系結構,它使你忘記了數據流,而將重點放在數據聲明和邏輯上。

在 Elm 中,所有函數都是純粹的,這意味著它們將總是對給定輸入返回相同的輸出。除非你指定,否則它們不能做任何其他事情。例如,為了訪問遠程 API,你將創建 command (命令)函數來與外界通信,以及創建 subscription (訂閱)以偵聽響應。純粹性的另一點是,值是不可變的;當你需要某樣東西時,你創建新值,而不是修改舊值。

Elm 的采用可以是漸進式的;可以使用 ports (端口) 與 JavaScript 和其他庫進行通信。雖然 Elm 尚未達到版本 1,但它正被用于復雜和大型的應用程序,使其成為復雜的應用程序的可行的解決方案。

Elm 最具吸引力的功能之一是初學者友好的編譯器,不是生成難以閱讀的消息,而是生成代碼,可以幫助你修復你的代碼。如果你在學習該語言,編譯器本身就可以大有助益。

module Main exposing (..)import Html exposing (..)-- MAINmain : Program Never Model Msgmain = Html.program{ init = init, update = update, view = view, subscriptions = subscriptions}-- INITtype alias Model = Stringinit : ( Model, Cmd Msg )init = ( 'Hello World!', Cmd.none )-- UPDATEtype Msg = DoNothingupdate : Msg -> Model -> ( Model, Cmd Msg )update msg model = case msg ofDoNothing -> ( model, Cmd.none )-- VIEWview : Model -> Html Msgview model = div [] [text model]-- SUBSCRIPTIONSsubscriptions : Model -> Sub Msgsubscriptions 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 whereimport Preludeimport Data.Foldable (fold)import TryPureScriptmain = 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 兼容。

來自:https://www.oschina.net/translate/10-languages-compile-javascript

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久观看| 麻豆中文一区二区| 超碰在线99| 麻豆精品在线| 国产精品白丝一区二区三区| 国产乱子精品一区二区在线观看 | 欧美极品中文字幕| 奇米亚洲欧美| 国内精品亚洲| 欧美在线网站| 蜜臀av在线播放一区二区三区 | 久久久久国产精品一区三寸| 亚洲一级特黄| 亚洲ww精品| 欧美激情久久久久久久久久久| 久久精品理论片| 亚洲第一精品影视| 亚洲精品乱码久久久久久蜜桃麻豆 | 风间由美中文字幕在线看视频国产欧美| 欧美综合社区国产| 嫩草伊人久久精品少妇av杨幂| 国产传媒在线| 国产精品日韩久久久| 日韩有吗在线观看| а√天堂8资源在线| 亚洲免费中文| 国产91欧美| 都市激情国产精品| 婷婷激情久久| 久久国产视频网| 日本欧美不卡| 涩涩涩久久久成人精品| 美女视频黄免费的久久| 日韩视频中文| 国产伦久视频在线观看| 久色成人在线| 日韩国产综合| 国产乱子精品一区二区在线观看 | 久久国产直播| 日本天堂一区| 亚洲男女av一区二区| 欧美激情麻豆| 亚洲啊v在线免费视频| 欧美精品资源| 国产精品九九| 91大神在线观看线路一区| 在线国产一区二区| 国产福利片在线观看| 日韩av中文字幕一区| 伊人影院久久| 麻豆久久精品| 亚洲影院天堂中文av色| 999国产精品视频| 韩国一区二区三区视频| 亚洲综合丁香| 欧洲一级精品| 桃色一区二区| 一区二区精品伦理...| 欧美黄色一区二区| 国产精品亚洲片在线播放| 午夜久久av| 欧美亚洲三区| 欧美激情日韩| 国内不卡的一区二区三区中文字幕| 麻豆国产一区| 久久久久久久欧美精品| 国产日韩欧美一区二区三区| 日韩精品一区二区三区中文字幕| 免费在线成人网| 日韩高清在线观看一区二区| 亚洲日产国产精品| 日韩欧美激情电影| 国产精品天天看天天狠| 精品国产乱码久久久久久1区2匹| 麻豆国产欧美一区二区三区 | 欧美国产美女| 欧美日韩精品一区二区视频| 五月天激情综合网| 亚洲精品在线国产| 国产精品主播在线观看| 在线天堂资源www在线污| 亚洲高清成人| 麻豆国产欧美一区二区三区| 日韩影院二区| 精品中文字幕一区二区三区四区| 免费在线观看日韩欧美| 精品在线91| 国产一区91| 视频在线在亚洲| 久久av导航| 亚洲高清毛片| 久久99影视| 国产日韩专区| 国产一区丝袜| 日韩一区二区三区精品| 亚洲成a人片| 国产精品亚洲产品| 天堂va蜜桃一区二区三区| 高清精品久久| 日韩精品中文字幕一区二区| 99久久久久国产精品| 国产精品激情| 亚洲综合色婷婷在线观看| 久久国产电影| 国产v日韩v欧美v| 日韩高清在线一区| 亚洲激精日韩激精欧美精品| 91亚洲国产高清| 日韩成人一级| 视频在线观看国产精品| 999国产精品| 亚洲黄色中文字幕| 国产一区二区三区久久| 国产精品密蕾丝视频下载| 亚洲一区导航| 伊人精品视频| 亚洲激情中文在线| 国产综合精品| 精品在线91| 黄色av一区| 亚洲一级黄色| 国产伊人精品| 激情婷婷综合| 婷婷亚洲综合| 在线日韩欧美| 免费久久精品| 亚洲色诱最新| 亚洲欧美日韩国产| 国产亚洲精品久久久久婷婷瑜伽| 亚洲福利一区| 亚洲欧美高清| 蜜桃久久精品一区二区| 婷婷视频一区二区三区| 日产欧产美韩系列久久99| 欧美日韩18| 国产精品va| xxxxx性欧美特大| 激情久久久久久久| 老牛国产精品一区的观看方式| 亚洲日产av中文字幕| 国产精品欧美在线观看| www.51av欧美视频| 99re国产精品| 欧美一区激情| 人在线成免费视频| 国产精品普通话对白| 日韩毛片网站| 国产白浆在线免费观看| 午夜久久tv| 久久久精品国产**网站| 丁香六月综合| 亚洲午夜免费| 综合日韩av| 蜜桃久久久久久| 日本精品黄色| 亚洲精品乱码| 日本а中文在线天堂| 亚洲久草在线| 久久国产日本精品| 久久国产三级| 99国产精品99久久久久久粉嫩| 欧美日本精品| 国产精品婷婷| www.九色在线| 国产精品一区免费在线| 蜜桃精品在线| 国产精品成人自拍| 日韩影院精彩在线| 日韩成人高清| 久久爱www.| 欧美日韩夜夜| 中文字幕亚洲精品乱码| 亚洲天堂免费电影| 精品一区二区三区免费看| 亚洲欧美网站在线观看| 尤物tv在线精品| 婷婷综合六月| 国产一区丝袜| 精品国产三区在线| 国产精品qvod| 亚洲精品一区二区在线播放∴| 欧美肉体xxxx裸体137大胆| 国产成人精品免费视| 久久久久亚洲精品中文字幕| 欧美久久香蕉| 久久国产三级| 国产精品一区二区三区四区在线观看| 免费美女久久99| 在线观看一区| 一区二区高清| 日韩精品1区2区3区| 日韩av资源网| 国产精品乱战久久久| 国产精品极品国产中出| 国产精品观看| 麻豆精品99| 国产日韩电影| 亚洲国内精品| 鲁大师成人一区二区三区| 蜜桃视频一区二区三区在线观看|