写点什么

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

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

关注

评论

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

测试不再碎片化:AI智能体平台「项目资料套件」功能上线!

测试人

炸了!Google新发图片大模型简直逆天!

王磊

测试了多款AI智能体,哪款“自动干活”

Techinsight

美国参议院法案对AI监管与能源政策的重大影响

qife122

人工智能监管 立法框架

F5年度峰会Solution Day盛大启幕,携应用交付与安全平台引领AI时代

科技热闻

基于 Web 的网上物流系统:对接快递鸟开放平台的全链路解决方案

快递鸟

企业如何选择RPA?一文了解RPA工具

Techinsight

MySQL数据库内网穿透远程访问教程:无需公网IP、简单3步

科技热闻

零代码改造!LoongSuite AI 采集套件观测实战

阿里巴巴云原生

阿里云 云原生 LoongSuite

CMDB升级!多插件协同,深度发现资源

智象科技

CMDB 一体化平台 一体化智能运维 深度发现 发现资源

AIOps故障诊断怎么做?3个典型场景实践展示

行云创新

AIOPS 智能运维AIOps 平台工程 AI运维

财务团队升级攻略:主动出击数字化,赋能决策新动力

智达方通

企业管理 数字驱动 财务管理

选型:五大RPA软件对比

Techinsight

前端热更新驱动下的中国互联网开发范式重构

xuyinyin

使用FIDO2实现LUKS磁盘加密的技术解析

qife122

LUKS 磁盘加密

[VLDB 2025]阿里云大数据AI平台多篇论文被收录

阿里云大数据AI技术

flink 阿里云 VLDB 多模态慢查询

客户实测第一!智象一体化运维平台脱颖而出

智象科技

ITSM CMDB 智能运维 一体化运维

政府网站IPv6检测怎么做?检测指标有哪些?

防火墙后吃泡面

RPA升级到AI,财务圈正在发生的3个变化

Techinsight

特斯拉、智元、宇树、英伟达等,产业链上市公司8月速递

机器人头条

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

从封闭垄断到开源革新:传统能源管理系统与 MyEMS 的核心维度对比

开源能源管理系统

开源 能源管理系统

Coze教程 第1章:Coze平台概述与测试应用前景

测试人

AI 云驱动产业智能化跃迁

Baidu AICLOUD

AI 昆仑芯 百度百舸 具身智能

TDengine IDMP 上线监控,只需几分钟:5 个场景实证

TDengine

人工智能 大数据 tdengine idmp

一体化运维平台自动化模块:3 大场景解放运维双手

智象科技

自动化 智能运维 自动化运维 一体化智能运维平台

夜莺监控新版表格配置图文讲解

巴辉特

夜莺监控

无公网IP也能远程访问:RealVNC+贝锐花生壳内网穿透全攻略

科技热闻

实测多家AI智能体感想,哪款能够自动执行任务?

Techinsight

澳鹏MediGo医疗大模型数据开发平台:解码智慧医疗的数据基因

澳鹏Appen

医疗AI 智慧医疗 医疗大数据

快速看懂财务机器人:案例+趋势,财务人该如何应对?

Techinsight

AI训练必看!2025年十大最佳数据采集代理推荐

不觉心动

爬虫 数据采集 AI+数据

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