写点什么

Scala.js:将 Scala 编译为 JavaScript 的编译器

  • 2015-03-24
  • 本文字数:817 字

    阅读完需:约 3 分钟

Scala.js 是一款将 Scala 代码编译为 JavaScript 代码的编译器,该编译器支持全部 Scala 语言特性。借助于 Scala.js,开发者能够使用 Scala 开发从前端到后端的 Web 应用,而且 Scala.js 还带来了在服务器和客户端之间复用代码的可能性。Scala.js 值得关注的特性包括:

  • 支持 Scala 语言的所有特性,包括宏 (macros),仅有一些语义的不同
  • 同 JavaScript 代码具有良好的互操作性,如 Scala.js 代码中以类型化或者非类型化方式使用 jQuery 和 HTML5、创建 Scala.js 对象和 JavaScript 代码中调用对象的方法;
  • 集成了 Scala 的流行构建工具 sbt ,支持依赖管理和增量编译;
  • 能够使用 Scala IDE 进行编码;
  • 能够生成一个源代码和生成代码的映射,从而提供了 Scala.js 和 Scala 二者之间平滑过渡的调试经历,在浏览器中单步调试 Scala 代码且且支持源码间的映射;
  • 集成了来自谷歌、用于生成紧凑且高性能代码的工具 Closure Compiler ,为产品以生成最小的代码;
  • 生成非常高效的 JavaScript 代码, 参考基准测试信息

Scala.js 已形成了一个良好的生态圈,生态圈内容包括:

Scala.js 基于 Scala 许可协议发布,代码托管在 GitHub ,当前最新版本是 0.6.2。有关 Scala.js 的 API、使用指导和参考指南,请读者参考官方提供的相关文档。此外,官方还提供了使用教程开发文档以及在浏览器中查看运行效果的在线工具


感谢徐川对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

2015-03-24 08:294568
用户头像

发布了 46 篇内容, 共 55.0 次阅读, 收获喜欢 15 次。

关注

评论

发布
暂无评论
  • 28|追本溯源:从第一版 React Native 开始学会读懂源码

    今天,我们以第一版React Native源码为例,教你如何通过读源码,一步一步理解React Native新架构。

    2022-09-01

  • JavaScript 刷 LeetCode 拿 offer-js 版字典

    与集合类似,字典也是一种存储唯一值的数据结构,但它是以键值对的形式来存储。

    2022-11-15

  • JS 事件,你真的懂吗(捕获,冒泡)?

    所有的js事件都会分为两个阶段捕获和冒泡。那么问题来了,我们通常看到的事件都是直接触发之后就执行了,那么我们怎么才能看到事件的捕获和冒泡都是怎么进行的呢

    2022-10-28

  • js 进阶手写常见函数

    无论是学习react还是vue,它们都是js的应用框架。剥去他们的壳子看到的始终是js,所以作为一个前端大厨必须要熟练掌握好js这个大勺,才能烧出一顿好菜

    2022-10-03

  • 开篇词|React Web 开发这样学,才能独当一面!

    学习一门技术,务必要有大于一门技术的收获,这也是我开设这个专栏的初衷。

    2022-08-22

  • 29|弄清现状:新架构预览版究竟长什么样?

    今天我们的目标就是承接上一节课讲过的方法,画一张新架构的“鸟瞰图”,看看当前0.70 版本的新架构预览版究竟是怎么设计的。

    2022-10-01

  • 30|JavaScript 引擎:双向通讯底层原理是什么?

    双向通讯底层原理是什么?

    2022-11-01

  • 开篇词 | JavaScript 的进阶之路

    这门课的初衷,就是让学习JavaScript的你,能够对这个开始比较不那么“专业”的语言,有一个系统的专业理解。帮助你一步一个脚印,把点连成线,把线连成面,把面搭建起一座空间立体的“思维大厦”。

    2022-09-19

  • 上手 JavaScript 基准测试

    大家好,我是小鑫同学。一位从事过 Android 开发、混合开发,现在长期从事前端开发的编程爱好者,我觉得在编程之路上最重要的是知识的分享,所谓三人行必有我师。所以我开始在社区持续输出我所了解到、学习到、工作中遇到的各种编程知识,欢迎有想法、有同感

    2022-10-13

  • js 进阶手写常见函数

    无论是学习react还是vue,它们都是js的应用框架。剥去他们的壳子看到的始终是js,所以作为一个前端大厨必须要熟练掌握好js这个大勺,才能烧出一顿好菜

    2022-10-31

  • Vue 模板是怎样编译的

    这一章我们开始讲模板解析编译:总结来说就是通过compile函数把tamplate解析成render Function形式的字符串compiler/index.js

    2022-11-10

  • Vue 模板是怎样编译的

    这一章我们开始讲模板解析编译:总结来说就是通过compile函数把tamplate解析成render Function形式的字符串compiler/index.js

    2023-02-24

  • js 异步编程面试题你能答上来几道

    在上一节中我们了解了常见的es6语法的一些知识点。这一章节我们将会学习异步编程这一块内容,鉴于异步编程是js中至关重要的内容,所以我们将会用三个章节来学习异步编程涉及到的重点和难点,同时这一块内容也是面试常考范围。

    2022-12-16

  • 中台 + 低代码 企业数字化转型新范式

    中台是一个从2016年到现在都一直很火的词,之所以从提出到现在持续这么久而热度不减,究其原因其实是企业在当下数字化经济时代的核心诉求发生了变化。

    2022-12-12

  • 浓缩即精华!腾讯云大神亲码“redis 深度笔记”,堪称面试宝典!

    作为这个时代码代码的秃头人员,对Redis肯定是不陌生的,如果连Redis都没用过,还真不好意思出去面试,指不定被面试官吊打多少次。

    2022-09-20

  • JS 事件,你真的懂吗(捕获,冒泡)?

    说到js事件大家肯定都知道,那么今天讲一点大家不知道的(假设大家不知道🐶)。所有的js事件都会分为两个阶段捕获和冒泡。那么问题来了,我们通常看到的事件都是直接触发之后就执行了,那么我们怎么才能看到事件的捕获和冒泡都是怎么进行的呢,这里给大家准备

    2022-10-22

  • js 异步编程面试题你能答上来几道

    在上一节中我们了解了常见的es6语法的一些知识点。这一章节我们将会学习异步编程这一块内容,鉴于异步编程是js中至关重要的内容,所以我们将会用三个章节来学习异步编程涉及到的重点和难点,同时这一块内容也是面试常考范围。

    2022-11-04

  • 32|Fabric:新渲染器的演进之路

    对核心渲染流程的持续迭代和优化,是 React Native 能够广受欢迎的重要原因之一。

    2023-01-01

  • js 异步编程面试题你能答上来几道

    在上一节中我们了解了常见的es6语法的一些知识点。这一章节我们将会学习异步编程这一块内容,鉴于异步编程是js中至关重要的内容,所以我们将会用三个章节来学习异步编程涉及到的重点和难点,同时这一块内容也是面试常考范围。

    2022-10-19

发现更多内容

MySQL 数据同步至 S3file,并接入 Hive 访问:SeaTunnel 实践指南

白鲸开源

MySQL hive Doris 数据同步 Apache SeaTunnel

DolphinScheduler 如何高效调度 AnalyticDB on Spark 作业?

白鲸开源

MySQL spark 开源 Apache DolphinScheduler analyticDB

垃圾回收算法有哪些?了解哪些垃圾回收器?

不在线第一只蜗牛

Java 算法 JVM

特斯拉Optimus V3,来了!!

机器人头条

特斯拉 人形机器人 宇树科技 智元机器人 特斯拉optimus

如何利用 DeepSeek 简历优化高阶提示词 + jobleap.cn快速提升简历约面率

Y11

求职 找工作 招聘 简历 失业

人工智能|大模型入门(六):GPT→盘古,国内外大模型矩阵速览

测试人

从论文提示词注入看智能体安全

冯骐

网络安全 智能体 大模型 SQL注入 提示词

龙蜥中级认证课程上线,Linux 技术进阶新选择

OpenAnolis小助手

Linux 操作系统 龙蜥社区人才培养计划

Web前端入门:JavaScript 由程序触发绑定事件的几种方式

量贩潮汐·WholesaleTide

JavaScript 前端

回看限时上线!2025 Altair 区域技术交流会精彩演讲回播来啦

Altair RapidMiner

人工智能 AI 仿真 CAE 航空航天

OASA 6 月月会圆满结束,同步联盟目标、漏洞激励计划等新进展

OpenAnolis小助手

开源 龙蜥社区 龙蜥社区安全联盟 软件适配

PostgreSQL 数据库中 ETL 操作的实战技巧

谷云科技RestCloud

数据库 postgresql 数据处理 ETL 数据集成

​​超越传统:低代码如何以敏捷开发+高效能撬动企业数智转型性价比天花板?​

电子尖叫食人鱼

低代码

红魔16 Pro联袂英特尔亮相Bilibili World 2025:解锁手机PC双端同频极致性能

科技热闻

了解案例共创活动

华为云开发者联盟

10+热门 AI Agent 框架深度解析:谁更适合你的项目?

测吧(北京)科技有限公司

VMware Cloud Foundation Operations 9.0 新增功能

sysin

vcf

电脑找不到C盘文件是什么情况?电脑c盘不小心删除的文件怎么恢复

阿拉灯神丁

EasyRecovery 文件恢复‘ 数据恢复软件 备份 & 恢复

阿里云 EMR Serverless Spark: 面向 Data+AI 的高性能 Lakehouse 产品

阿里云大数据AI技术

人工智能 大数据 spark Serverless 数据处理

在沈阳搞AI,嘎嘎好!

百度Geek说

达摩院玄铁、龙蜥等联合出题,首届 CIE 全国 RISC-V 高水平创新和应用大赛邀您报名

OpenAnolis小助手

操作系统 risc-v 龙蜥社区 龙蜥社区赛题

VMware Cloud Foundation Automation 9.0 新增功能

sysin

vcf

面试官:谈谈你AI项目的具体实现?

王磊

给 DolphinScheduler 加一个 SQL Copilot 聊天助手,这个主意怎么样?

白鲸开源

GitHub 开源 AI Apache DolphinScheduler Copilot

亲测可用!麒麟环境下安装 SeaTunnel 完整指南

白鲸开源

Linux 开源 安装 麒麟操作系统 Apache SeaTunnel

倒计时 1 天!龙蜥邀您参加 RISC-V 中国峰会

OpenAnolis小助手

操作系统 risc-v 龙蜥社区 Anolis OS 龙蜥社区 RISC-V SIG

【重磅发布,限时下载】《WhaleStudio商业案例白皮书》上线,数智化转型最佳实践一次看全

白鲸开源

大数据 白皮书 DataOps 白鲸开源 商业案例

缓存穿透的解决方式?—布隆过滤器

量贩潮汐·WholesaleTide

缓存

智能化研发指标体系:从看得见到做得到

思码逸研发效能

研发管理 研发效能 研发效能度量

既美又强!机械师曙光16S Ultra搭载酷睿处理器重新定义全能游戏本

科技热闻

龙蜥牵手如意 RISC-V 社区,共筑 RISC-V 软件生态新未来

OpenAnolis小助手

开源 操作系统 risc-v 龙蜥社区

Scala.js:将Scala编译为JavaScript的编译器_JavaScript_李小兵_InfoQ精选文章