AICon 北京站 Keynote 亮点揭秘,想了解 Agent 智能体来就对了! 了解详情
写点什么

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:582163
用户头像

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

关注

评论

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

融云:AI 机器人在社交软件中的花样存在

融云 RongCloud

AI 融云 社交软件 AIGC My AI

​Elastic Stack最佳实践系列:Beats->ES,一个更轻型的架构选择

腾讯云大数据

ES

软件测试|如何使用ChatGPT生成思维导图

霍格沃兹测试开发学社

社交语聊平台运营,需要哪些资质?语聊APP原生开发和混合uniapp开发的利弊分析

山东布谷科技胡月

语音聊天系统软件开发 语音直播平台开发 语音聊天室开发 语音程序源码 社交直播APP开发

FuncGPT(慧函数)教你用Mybatis进行一对一查询映射处理

飞算JavaAI开发助手

几款常用基于Web的组态编辑器

2D3D前端可视化开发

物联网 web组态 web组态软件 组态可视化 web组态编辑器

唯一受邀参会通信服务商!融云出席数字经济头部盛会「中数大会」并发言

融云 RongCloud

人工智能 互联网 通信 数字 融云

我是如何使用Spring Retry减少1000 行代码

越长大越悲伤

Java spring retry spring-retry

常用的国内外组态软件推荐

2D3D前端可视化开发

物联网 组态软件 工业组态软件 web组态软件 SCADA

首批通过!柏睿数据旗下数据库产品获强制性国标最高级别认证

新消费日报

一张图读懂TuGraph Analytics开源技术架构

TuGraphAnalytics

大数据 分布式 流计算 图计算 流图

什么是HTTP代理?HTTP代理的作用?HTTP代理怎么设置?

巨量HTTP

代理IP IP地址 http代理 socks5代理

如何将数据从 InfluxDB 无缝接入到 TDengine 中?来看看

TDengine

tdengine Influxdb 时序数据库

融云深度参与「新加坡 GTLC 大会」,连接亚太机遇、开拓国际市场

融云 RongCloud

通信 服务 融云 GTLC 东南亚

头脑风暴小工具-影响地图

Bruce Talk

敏捷开发 Agile Product Owner 影响地图

Easysearch 跨集群复制实战

极限实验室

easysearch

又一可视化低代码神器!云耀云服务器L实例正式发布

mecchi

软件开发 云主机 云服务器 博客搭建

Last Week in Milvus

Zilliz

非结构化数据 开源社区 Milvus Zilliz 向量数据库

一文看懂:小程序游戏需要版号吗?

FN0

走进大模型

统信软件

人工智能 深度学习 大模型

图智能在反洗钱方向的应用实践丨Fabarta 技术专栏

Fabarta

图计算 图分析 反洗钱 图智能 智能风控

第三周作业

大肚皮狒狒

软件测试|人工智能如何帮助测试工程师解决问题?

霍格沃兹测试开发学社

加入DevRun软件开发流水线实战营,即刻开启你的职场竞争力之旅!

科技热闻

九科信息成功签约中交房地产集团有限公司RPA项目

九科Ninetech

2023年科技趋势展望报告,这几个领域程序员可以恰饭

互联网工科生

人工智能 软件开发 麦肯锡

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