Web前端开发网

fly63.com

首页 资源 工具 文章 教程 栏目
  • 在线搜索
  • 文章标签
  • 广告合作
  • 赞助一下
  • 关于我们
资源推荐
星月写作
人工智能写作助手
硅云优惠券
领先的基础云计算服务提供商,PHP云虚拟主机第一品牌
豆包AI
字节跳动旗下 AI 智能助手
阿里云优惠券
卓越的云计算技术和服务提供商
Trae
字节跳动推出的 AI原生编程工具
宝塔服务器面板
简单好用的服务器运维面板
Seedance 2.0
字节跳动新一代AI视频生成模型全面解析
堆友AI
零门槛,多风格AI绘画免费生成,电商海报设计神器
购物快捷导航
一站式解决网购需求的智能平台
友情链接交易
为广大站长提供友情链接买卖、软文交易等服务

资源分类

AI智能 酷站推荐 招聘/兼职 框架/库 模块/管理 移动端UI框架 Web-UI框架 Js插件 Jquery插件 CSS相关 IDE环境 在线工具 图形动效 游戏框架 node相关 调试/测试 在线学习 社区/论坛 博客/团队 前端素材 图标/图库 建站资源 设计/灵感 IT资讯
网站收录 / 问题反馈

CoffeeScript

分享
复制链接
新浪微博
QQ 好友

扫一扫分享

网站地址:http://coffeescript.org/
GitHub:https://github.com/jashkenas/coffeescript
网站描述:一套JavaScript的转译语言
访问官网
GitHub

CoffeeScript是一套JavaScript的转译语言,创建者 Jeremy Ashkenas 戏称它是- JavaScript 的不那么铺张的小兄弟。因为 CoffeeScript 会将类似 Ruby 语法的代码编译成 JavaScript,而且大部分结构都相似,但不同的是 CoffeeScript 拥有更严格的语法。

CoffeeScript和TypeScript一样,都是编译为JavaScript的语言,它们都增强了JavaScript的表达能力。 所谓编译为JavaScript,是指CoffeeScript和TypeScript没有实现自己的运行时,它们都是编译为等价的JavaScript代码,然后放在JavaScript的解释器上运行。 


CoffeeScript给人最大的印象就是其简洁的表达。 

# 赋值:
number   = 42
opposite = true

# 条件:
number = -42 if opposite

# 函数:
square = (x) -> x * x

# 数组:
list = [1, 2, 3, 4, 5]

# 对象:
math =
  root:   Math.sqrt
  square: square
  cube:   (x) -> x * square x

# Splats:
race = (winner, runners...) ->
  print winner, runners

# 存在性:
alert "I knew it!" if elvis?

# 数组 推导(comprehensions):
cubes = (math.cube num for num in list)

上面的代码会编译为等价的JavaScript代码: 

var cubes, list, math, num, number, opposite, race, square,
  __slice = [].slice;

number = 42;

opposite = true;

if (opposite) {
  number = -42;
}

square = function(x) {
  return x * x;
};

list = [1, 2, 3, 4, 5];

math = {
  root: Math.sqrt,
  square: square,
  cube: function(x) {
    return x * square(x);
  }
};

race = function() {
  var runners, winner;
  winner = arguments[0], runners = 2 <= arguments.length ? __slice.call(arguments, 1) : [];
  return print(winner, runners);
};

if (typeof elvis !== "undefined" && elvis !== null) {
  alert("I knew it!");
}

cubes = (function() {
  var _i, _len, _results;
  _results = [];
  for (_i = 0, _len = list.length; _i < _len; _i++) {
    num = list[_i];
    _results.push(math.cube(num));
  }
  return _results;
})();

run: cubes

CoffeeScript力求简洁。其简洁性首先表现在对一些仅用于语法控制的符号进行了去除。这其中包括:

  • 取消分号

  • 取消var声明

  • 取消大括号包围内层代码,使用缩进取代

  • 函数调用在没有歧义的情况下可以省略括号

var声明涉及到复杂又很鸡肋的JavaScript变量作用域机制。这部分内容先放着不讲。CoffeeScript通过完全取消var声明机制而使得问题得到简化。总之,在CoffeeScript世界里,变量不用事先声明,直接用就是了。而且这种用法基本没有什么危险。

缩进在CoffeeScript中不仅仅在于美化代码,其代表了代码层次的组织,是有特别的含义的。简单地说就是,不适用大括号包围内层代码,而是内层代码要缩进。不同的缩进代表了不同的代码层次。形式和内容是一致的。

 

 

仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!

链接: https://fly63.com/nav/1372

更多»
热门资源
TypeScript
一种由微软开发的自由和开源的编程语言。它是JavaScript的一个超集
官网
GitHub
Vite
下一代前端开发与构建工具
官网
GitHub
webpack
webpack 是一个模块打包器。它的主要目标是将 JavaScript 文件打包在一起
官网
GitHub
npm
javascript 最流行的包管理器
官网
GitHub
yarn
可替代NPM的快速、可靠、安全的可信赖包管理工具Yarn
官网
GitHub
bower
解决js的依赖管理
官网
GitHub
grunt
基于Node.js的项目构建工具。它可以自动运行你所设定的任务
官网
GitHub
Parcel
快速,零配置的 Web 应用程序打包器
官网
GitHub
babel
Babel 是一个 JavaScript 编译器,可用下一代JavaScript 语法写代码
官网
GitHub
browserify
一个浏览器端代码模块化工具,require和module.exports来导入和导出.Browserify的原理:部署时处理代码依赖,将模块打包为一个文件。
官网
GitHub
Rolldown
Rust 驱动的高性能打包器
官网
GitHub
HEAD
一份你可以在 &lt;head&gt; 里设置的列表
官网
GitHub
类似于CoffeeScript的资源
Neutrino
创建和构建零初始配置的现代JavaScript应用程序
官网
GitHub
Biome
用于 Web 项目的高性能工具链
官网
GitHub
Turbopack
Vercel 推出了下一代打包工具
官网
GitHub
LLRT
亚马逊开源的一个轻量级的 JavaScript 运行时
点击进入
GitHub
SystemJS
提供通用的模块导入途径,支持传统模块和ES6的模块
点击进入
GitHub
WMR
微型的多合一开发工具,用于现代 Web 应用程序
官网
GitHub
react-boilerplate
一个简单灵活的React脚手架
官网
GitHub
jsvu
一个JavaScript(引擎)版本更新程序
官网
GitHub
目录

手机扫一扫预览

》
分享组件加载中...
首页 技术导航 在线工具 技术文章 教程资源 前端标签 AI工具集 前端库/框架 实用工具箱 广告合作 关于我们

Copyright © 2018 Web前端开发网 All Rights Reserved. 提供免费在线工具、编程学习资源(教程/框架/库),内容以学习参考为主,助您解决各类实际问题,快速提升专业能力。