0

0

10 个 有趣的 JavaScript 的脚本语言

小云云

小云云

发布时间:2017-12-05 10:35:11

|

4661人浏览过

|

来源于php中文网

原创

我们都知道javascript并不是实现所有任务的最佳语言,当遇到复杂的应用时,它可能就不太适合。为了避免这个问题,已经创建了几种新的语言和现有语言的变体,它们都生成可以在浏览器中运行的代码,而无需编写任何javascript代码,也不用考虑语言的局限性。

Dart 是一种经典的面向对象语言,其中所有事物都是对象,任何对象都是类的实例(对象也可以充当函数)。它专门用于构建浏览器、服务器和移动设备的应用程序。它由谷歌维护,并且是 驱动下一代 AdWords 用户界面的语言 , 而 AdWords 是给谷歌创造收入的最重要的产品,这本身就是在证明其大规模的力量。

该语言可被翻译成 JavaScript ,以便在浏览器中使用,或者由 Dart VM 直接解释执行,这也允许你构建服务器应用程序。可以使用 Flutter SDK 创建移动应用程序。

复杂的应用程序还需要一组成熟的库和专门为此任务而设计的语言特性,而 Dart 包含所有这些库和特性。一个流行的库的例子是 AngularDart ,Angular 的 Dart 版本。

它允许你编写类型安全的代码,而不会太有侵入性;你可以编写类型,但你不需要这样做,因为它们可以被推断出来。这允许创建快速原型,而不必过度考虑细节,但一旦你的原型可以工作,你可以添加类型以使其更加健壮。

立即学习Java免费学习笔记(深入)”;

关于虚拟机中的并发编程,Dart 使用所谓的 Isolates 连同它们自己的内存堆,来代替共享内存线程(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 也支持高级的类型,如 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 库,使其速度非常快。其一大优点是内置的体系结构,它使你忘记了数据流,而将重点放在数据声明和逻辑上。

在 Elm 中,所有函数都是纯粹的,这意味着它们将总是对给定输入返回相同的输出。除非你指定,否则它们不能做任何其他事情。例如,为了访问远程 API,你将创建 command (命令)函数来与外界通信,以及创建 subscription (订阅)以侦听响应。纯粹性的另一点是,值是不可变的;当你需要某样东西时,你创建新值,而不是修改旧值。

Elm 的采用可以是渐进式的;可以使用 ports (端口) 与 JavaScript 和其他库进行通信。虽然 Elm 尚未达到版本 1,但它正被用于复杂和大型的应用程序,使其成为复杂的应用程序的可行的解决方案。

Elm 最具吸引力的功能之一是初学者友好的编译器,不是生成难以阅读的消息,而是生成代码,可以帮助你修复你的代码。如果你在学习该语言,编译器本身就可以大有助益。

PixVerse
PixVerse

PixVerse是一款强大的AI视频生成工具,可以轻松地将多种输入转化为令人惊叹的视频。

下载
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中关于表单脚本的实用技巧

相关文章

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

49

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

89

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

276

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

59

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

99

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

105

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

230

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

619

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

173

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
React 教程
React 教程

共58课时 | 6万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 3.4万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.6万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号