“AI 技术+人才”如何成为企业增长新引擎?戳此了解>>> 了解详情
写点什么

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

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

关注

评论

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

你见过最具有代表性的面试是什么样的?大三4面上岸腾讯(Java岗)

Java架构师迁哥

我用Vanilla JS重写了一遍项目,结果……

Faye

大前端 js 原生

所有前端都要看的2D游戏化互动入门基础知识

蚂蚁集团移动开发平台 mPaaS

大前端

阿里P7亲自讲解!Android大厂面试真题解析大全

欢喜学安卓

android 程序员 面试 移动开发

全美第四大无线运营商 DISH 和亚马逊云科技开展战略合作

亚马逊云科技 (Amazon Web Services)

架构实战营模块8作业

eoeoeo

架构实战营

发布60分钟!霸榜Github的阿里面试参考指南,啃透涨薪10k

Java架构师迁哥

一文读懂大数据实时计算

五分钟学大数据

实时计算 7月日更

智慧海洋三维可视化,科技运维助工业物联网一臂之力

一只数据鲸鱼

数据可视化 3D可视化 智慧工业 海上作业

搭建 JumpServer 堡垒机管理数万台游戏服务器

学神来啦

云计算 Linux linux运维 运维工程师 运维平台

阿里P7大牛手把手教你!卧薪尝胆70天内推入职阿里

欢喜学安卓

android 程序员 面试 移动开发

从零开始学习3D可视化之摄像机投影方式

ThingJS数字孪生引擎

大前端 可视化 3D 数字孪生

阿里新出炉爆款的顶配版Spring Security笔记,肝完变秃也变强

Java spring 编程 架构

架构实战营-模块八-作业

大可

趣口袋拼团系统APP开发案例

亚马逊云科技和 Verizon 利用专有 MEC 解决方案扩大 5G 合作

亚马逊云科技 (Amazon Web Services)

闭关三月!啃透美团保姆级分布式进阶技术手册,终入美团定L8

Java 面试

喜马拉雅亿级用户量的离线消息推送系统架构设计实践

JackJiang

消息推送 即时通讯 IM push

CryptoPlace挖矿APP系统开发简介

云计算对比IDC的优势简单说明-行云管家

行云管家

云计算 服务器

面试官:你能讲讲栈和队列吗?我:你礼貌吗?

Ayue、

数据结构

Mtail导致Nginx报警延迟

BUG侦探

运维 监控 日志

高并发应对策略系列文章阶段汇总,提供离线文档下载

Coder的技术之路

hdfs 的集群间拷贝、归档、回收站等功能剖析

大数据技术指南

hdfs 7月日更

TY短视频系统APP开发介绍

互帮侠系统软件开发公司

Flink Runtime架构

布兰特

flink

经过一年的不懈努力社招进了阿里,我总结了50个Java面试必考题

Java 程序员 架构 面试

CodeDay 北京站报名倒计时

蚂蚁集团移动开发平台 mPaaS

移动开发

新思科技凭借Coverity Scan帮助NGINX确保代码质量和安全

InfoQ_434670063458

新思科技 软件安全 Coverity 静态代码分析

点通生活系统软件开发搭建

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