AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

CoffeeScript 1.7 发布: 增加了无括号链式调用、多行字符串等特性

  • 2014-02-18
  • 本文字数:1494 字

    阅读完需:约 5 分钟

Jeremy Ashkenas 刚发布了 CoffeeScript 的 1.7 版,并对流行的 JavaScript 转换做了一些备受期待的修改。

版本 1.7 中包含了一个非常受欢迎的语言特性请求,支持无括号链式调用。在 1.7 版之前,如果有开发者想要链接函数,则必须使用括号,而在 CoffeeScript 中,函数是没必要使用括号的。

复制代码
// 1.7 之前 - 链式调用需要括号
$('#element').addClass('active').css({ left: 5 });
// 1.7 - 没有括号了
$ '#element'
.addClass 'active'
.css { left: 5 }

这一版还实现了对多行字符串的正确支持。在之前版本的 CoffeeScript 中,字符串(或字符串字面量)留下了新行和空格,而忽略了\\操作符,这个符号的意思是要让两个字符串留在同一行上。在 1.7 版中,这个问题也被解决了,开发人员在 CoffeeScript 中可以清楚地格式化多行字符串了。

复制代码
console.log '''The quick brown fox jumped over the \
lazy dog'''
// 1.7 版之前的输出
The quick brown fox jumped \nover the lazy dog
// 1.7 版现在的输出
The quick brown fox jumped over the lazy dog

对数组解构的扩张也给加上了,这个之前曾经是 CoffeScript 项目中开放时间最长的问题

复制代码
# 取得 animals 数组中的最后一项
animals = [ 'cat', 'dog', 'hippopotamus' ]
# 1.7 版之前
hippo = animals[animal.length - 1]
# 1.7 版现在的样子
[..., hippo] = animals
# ... 两个都会被转换成...
hippo = animals[animals.length - 1];

还有更方便的数学操作符。包括新的平方操作符、向下取整除,以及一个模除操作符 (返回除法操作的余数)。

复制代码
# 平方
2 ** 2
# 转换成...
Math.pow(2, 2);
# 向下取整除
2 // 3
#转换成...
Math.floor(2 / 3)
# 模除
2 %% 3
#转换成...
var __modulo = function(a, b) { return (a % b + +b) % b; };
__modulo(2, 1);

其它改进包括让 CoffeeScript 跟 Node.js 保持一致,这样它的 require 语句不会自动运行一个目录中的每个文件,而是表现的像 Node 一样,只运行 index.coffee 文件。

1.7 版本发布的大部分工作 (实际上过去几年大部分的 CoffeeScript) 都是由社区成员完成的。" CoffeeScript 中合并了超过一百多个开发人员的贡献和补丁",Jeremy 说。" CoffeeScript 之所以乐于采用,是因为那些想法能够吸引 JavaScript 程序员。"考虑到 Michael Srb 对 1.7 版本所作的贡献, Jeremy 对他致以了 特别的感谢

CoffeeScript 确实享有巨大的声望,达到了 GitHub 上最受欢迎的十大项目之一的高度。在 Ruby on Rails (自 3.1 版开始) 之类的框架中也出现到了对它的支持,微软的 Visual Studio 也通过 Web Essentials 插件对它提供了支持。此外,JavaScript 的创建者 Brenden Eich 也曾表示过,CoffeeScript 在他思考 JavaScript 的未来时产生了怎样的影响。

GitHub 用户 stefanpenner 评论说在 CoffeeScript 中 “…ES6 import export 将会成为关键…”

Jeremy 确实在 CoffeeScript 的评述中提到了 ES6 的特性,

CoffeeScript 几乎要完成了— 过去两年到现在都十分稳定— 但将来还会继续有小幅度增长。比如说:有新的 JavaScript 特性出现时提供支持,进一步改进源码映射的支持, 为文学编程风格进一步打磨,让编译器内部更加精简。

曾经有个 Kickstarter 项目,它要重写 CoffeeScript 编译器。这个项目成功地募集到了资金,被称为 CoffeeScriptRedux 。Jeremy 认为有人为 CoffeeScript 创建新的编译器是好事, " 面向一种语言的编译器越多—那种语言越健康。CoffeeScript 也是,它能从多个独立的编译器中受益。"

你马上就可以在 GitHub ,或 CoffeeScript 官方网站上得到 CoffeeScript 的 1.7 版。

原文英文链接: CoffeeScript 1.7 Released: Adds Chaining Without Parenthesis, Multiline Strings and More

2014-02-18 18:582190
用户头像

发布了 45 篇内容, 共 26.4 次阅读, 收获喜欢 11 次。

关注

评论

发布
暂无评论
发现更多内容

YashanDB集群服务

YashanDB

数据库 yashandb

YashanDB文件系统

YashanDB

数据库 yashandb

焱融科技正式当选为北京信创工委会副理事长单位

焱融科技

人工智能 信创 国产化 AI存储

DeepSeek免费福利限时开启,AI界的“薅羊毛”机会来了!

京东科技开发者

生成式AI安全指南

I

网络安全 AI安全 安全架构

十行代码构建基于 CDC 的实时更新物化视图

tapdata

开发者 开源项目 CDC 物化视图 变更数据捕获

DeepSeek的开源之路:一文读懂从V1-R1的技术发展,见证从开源新秀到推理革命的领跑者

京东科技开发者

企业考勤系统选择指南:对比11款主流工具的功能与优势

易成研发中心

考勤管理软件

筑牢 YMatrix 质量防线:从测试出发(思路篇)

YMatrix 超融合数据库

测试 实时数仓 实时数仓架构 YMatrix

智能代码生成与可视化开发的融合创新——前端开发领域的技术突破与挑战

不在线第一只蜗牛

低代码

Hybrid WAN混合广域网:灵活高效的网络新架构

Ogcloud

SD-WAN 广域网 企业组网 SDWAN 混合广域网

万字长文详解|逻辑数据编织 VS 传统数据研发

Aloudata

数据仓库 数据分析 数据管理 数据虚拟化 数据编织

YashanDB反入侵

YashanDB

数据库 yashandb

Grok 3 语音功能上线,「脏话冒犯」模式引热议;Voice Agent Demo 分享:实时 AI 解说员丨日报

声网

信息化运维解决方案,it运维管理体系文档,运维巡检方案(Word资料集)

金陵老街

运维 运维服务方案

【有奖实践】轻量消息队列(原 MNS)订阅 OSS 事件实时处理文件变动

阿里巴巴云原生

阿里云 云原生

混合WAN是什么?有什么优点?的差异

Ogcloud

企业组网 企业网络 混合wan 混合广域网

S创|月度路演 2025年2月 “消费科技”&“文娱科技”主题,展示项目&圆桌嘉宾公布

声网

英特尔以太网新品:高性能与能效并重,带来多样化选择

E科讯

业务监控-京东物流Promise实践与探索

京东科技开发者

视觉理解+实时语音,打造你的多模态实时 AI丨 TEN+亚马逊云科技开源工作坊

声网

企业员工人事管理系统哪个好?近年主流产品测评

易成研发中心

人事管理系统

全新英特尔至强6处理器来袭,现代数据中心的性能与能效平衡“大师”

E科讯

破解 vLLM + DeepSeek 规模化部署的“不可能三角”

阿里巴巴云原生

阿里云 Serverless 云原生

YashanDB审计

YashanDB

数据库 yashandb

YashanDB安装前准备

YashanDB

数据库 yashandb

玩真的!人人有礼!@你的 AI 编码搭子,满血开发拿鹅厂周边~

CodeBuddy

AI编码 腾讯云AI代码助手 DeepSeek

中大型企业如何做员工薪酬绩效管理?分享主流的16种工具

易成研发中心

薪酬管理系统

CoffeeScript 1.7发布:增加了无括号链式调用、多行字符串等特性_JavaScript_Burke Holland_InfoQ精选文章