Y分钟学CoffeeScript

简介: CoffeeScript是逐句编译为JavaScript的一种小型语言,且没有运行时的解释器。 作为JavaScript的替代品之一,CoffeeScript旨在编译人类可读、美观优雅且速度不输原生的代码, 且编译后的代码可以在任何JavaScript运行时正确运行。

CoffeeScript是逐句编译为JavaScript的一种小型语言,且没有运行时的解释器。 作为JavaScript的替代品之一,CoffeeScript旨在编译人类可读、美观优雅且速度不输原生的代码, 且编译后的代码可以在任何JavaScript运行时正确运行。


参阅 CoffeeScript官方网站以获取CoffeeScript的完整教程。

CoffeeScript是一种很潮的编程语言,它紧随众多现代编程语言的趋势。 因此正如Ruby和Python,CoffeeScript使用井号标记注释。

# 这是注释

###

大段落注释以此为例,可以被直接编译为 '/ *''* /' 包裹的JavaScript代码。

在继续之前你需要了解JavaScript的基本概念。

示例中 => 后为编译后的JavaScript代码

###

赋值

number   = 42#=> var number = 42;

opposite = true#=> var opposite = true;


条件

number = -42 if opposite #=> if(opposite) { number = -42; }


函数

square = (x) -> x * x #=> var square = function(x) { return x * x; }

fill = (container, liquid = "coffee") ->

 "Filling the #{container} with #{liquid}..."

#=>var fill;

#

#fill = function(container, liquid) {

#  if (liquid == null) {

#    liquid = "coffee";

#  }

#  return "Filling the " + container + " with " + liquid + "...";

#};


区间

list = [1..5] #=> var list = [1, 2, 3, 4, 5];


对象

math =

 root:   Math.sqrt

 square: square

 cube:   (x) -> x * square x

#=> var math = {

#  "root": Math.sqrt,

#  "square": square,

#  "cube": function(x) { return x * square(x); }

#}

Splats

race = (winner, runners...) ->

 print winner, runners

#=>race = function() {

#  var runners, winner;

#  winner = arguments[0], runners = 2 <= arguments.length ? __slice.call(arguments, 1) : [];

#  return print(winner, runners);

#};


存在判断

alert "I knew it!"if elvis?

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

数组推导

cubes = (math.cube num for num in list)

#=>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;

#  })();

foods = ['broccoli', 'spinach', 'chocolate']

eat food for food in foods when food isnt 'chocolate'

#=>foods = ['broccoli', 'spinach', 'chocolate'];

#

#for (_k = 0, _len2 = foods.length; _k < _len2; _k++) {

#  food = foods[_k];

#  if (food !== 'chocolate') {

#    eat(food);

#  }

#}

相关文章
|
负载均衡 算法 数据安全/隐私保护
|
缓存 开发工具 git
报错:Git上传代码报错 will not add file alias already exists in index
报错:Git上传代码报错 will not add file alias already exists in index
564 0
|
6月前
|
存储 文字识别 数据可视化
让你的电脑变得与众不同的冷门小工具
本文推荐了5款冷门但功能强大的小工具:1. MiniBin,轻量级回收站管理工具;2. AltairSimLab,多物理场仿真平台;3. 燃精灵,微信空号检测软件;4. IrfanView,经典图像查看器;5. Folder Size View,磁盘空间分析工具。这些软件体积小巧,功能出色,可大幅提升工作效率。
115 4
|
11月前
|
缓存 Java 数据库
后端技术探索:从基础架构到高效开发的实践之路
【10月更文挑战第7天】 在现代软件开发中,后端技术是支撑应用运行的核心。本文将探讨如何从后端的基础架构出发,通过一系列高效的开发实践,提升系统的性能与可靠性。我们将深入分析后端框架的选择、数据库设计、接口开发等关键领域,并提供实用的代码示例和优化策略,帮助开发者构建更稳定、高效的后端系统。通过这篇文章,读者将获得关于后端开发的全面理解和实践指导,从而更好地应对复杂项目需求。
276 0
|
存储 文字识别 安全
Javaweb之SpringBootWeb案例之阿里云OSS服务的详细解析
Javaweb之SpringBootWeb案例之阿里云OSS服务的详细解析
311 0
|
负载均衡 监控 前端开发
|
PHP 数据安全/隐私保护 计算机视觉
ThinkPHP图片处理之压缩图片大小,图片处理之图片水印(添加平铺文字水印,并设置文字之间的间距和文字的角度)
ThinkPHP图片处理之压缩图片大小,图片处理之图片水印(添加平铺文字水印,并设置文字之间的间距和文字的角度)
251 1
|
机器学习/深度学习 算法 数据挖掘
R语言在金融分析中扮演重要角色,用于风险管理、资产定价、量化交易、市场预测和投资组合优化。
【7月更文挑战第2天】R语言在金融分析中扮演重要角色,用于风险管理、资产定价、量化交易、市场预测和投资组合优化。其开源、强大的统计功能和丰富的包(如`PerformanceAnalytics`、`quantstrat`、`forecast`)支持从风险评估到策略回测的各种任务。R的灵活性和社区支持使其成为金融专业人士应对复杂问题的首选工具。
483 1
CTK框架 - 第一个插件
前面我们已经介绍了CTK框架的基本信息,接下来我们来一步一步搭建CTK的第一个插件。
276 0
|
机器学习/深度学习 传感器 运维
提升数据中心效能:智能运维策略与实践
【4月更文挑战第6天】在数字化时代,数据中心作为企业信息架构的核心,其稳定性和效率直接影响到业务连续性和客户满意度。随着技术的进步,传统的数据中心运维模式已经不能满足现代高效、智能化的需求。本文将探讨如何通过智能运维(AIOps)策略,结合大数据分析和机器学习技术,实现数据中心的自动化管理、故障预测及快速响应,以提升整体效能并降低运营成本。