《CoffeeScript应用开发》学习:第三章-构建简单的应用程序
字符串插值
CoffeeScript提供了一种更好的构建字符串的解决方案。在双引号字符串(单引号无效)中使用#{}
包含一个动态的值。
str = 'Hello, CoffeeScript.'
console.log "#{str + ':)'}"
# 输出:Hello, CoffeeScript:)
定义函数
CoffeeScript引入lambda表达式的形式来定义函数。
函数定义:
# 定义有参函数并调用
sayHello = (name)->
return "Hello, #{name}!"
sayHello "Programmer" # 输出Hello, Programmer!
# 定义无参函数并调用
sayGoodBye = ->
return "Bye now!"
sayGoodBye() # 输出Bye now!
函数命名
大多数情况下,CoffeeScript不支持形如function sayHello(name){...}
的命名函数,只支持绑定函数。
JavaScript中的命名函数在文件中其他一切之前执行定义,但是绑定函数不遵循此规则,绑定函数只在函数声明(定义)的位置执行声明操作,也就是说,只有在此之后的代码可以调用此函数,在绑定函数之前无法调用此函数。
函数返回
CoffeeScript中函数有一个重要特性:隐式返回。即函数中如果没有显式给定返回的值,那么函数将以运行时执行的最后一条语句结果作为返回值。
其中,如果最有一条语句为if
语句,则在if
语句的每个分支中都加入return
语句;如果是for循环,则返回每次循环执行结果组成的数组,
如果确定函数不会返回,那么可以再函数末尾添加一个没有返回值的return语句或者null。
switch语句
CoffeeScript中的switch使用switch,when和else作为语句关键字,break命令自动插入到控制结构中。其中,when语句可以接受多个值的匹配,使用逗号隔开,还可以使用then语句将语句块缩短至一行
switch iSpy
when 'sky'
console.log 'blue'
when 'grass', 'frog'
console.log 'green'
when 'lake' then 'dark'
else
console.log 'grey'
《CoffeeScript应用开发》学习:第三章-构建简单的应用程序的更多相关文章
- 区块链开发学习第三章:私有链上部署helloBlockchain简单合约
前面讲了部署私有链以及新增账户,现在进行到了部署合约了,此操作真是踩了无数无数无数的坑,到写文章为止确实是已经部署好了,但是还有些坑是还没有解决的! 一.Solidity编译器 开始的时候用的http ...
- [HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设
[HeadFrist-HTMLCSS学习笔记]第三章构建模块:Web页面建设 敲黑板!! <q>元素添加短引用,<blockquote>添加长引用 在段落里添加引用就使用< ...
- 《ORACLE数据库管理与开发》第三章学习之常用函数记录
<ORACLE数据库管理与开发>第三章学习之常用函数记录 注:文章中的*代表所要操作的列名 1.lower(*)/upper(*),将此列下的值转为小写/大写 2.initcap(*):把 ...
- Android艺术开发探索第三章——View的事件体系(上)
Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 Motion ...
- Android艺术开发探索第三章————View的事件体系(下)
Android艺术开发探索第三章----View的事件体系(下) 在这里就能学习到很多,主要还是对View的事件分发做一个体系的了解 一.View的事件分发 上篇大致的说了一下View的基础知识和滑动 ...
- Knockout应用开发指南 第三章:绑定语法(3)
原文:Knockout应用开发指南 第三章:绑定语法(3) 12 value 绑定 目的 value绑定是关联DOM元素的值到view model的属性上.主要是用在表单控件<input&g ...
- Knockout应用开发指南 第三章:绑定语法(2)
原文:Knockout应用开发指南 第三章:绑定语法(2) 7 click 绑定 目的 click绑定在DOM元素上添加事件句柄以便元素被点击的时候执行定义的JavaScript 函数.大部分是用 ...
- Knockout应用开发指南 第三章:绑定语法(1)
原文:Knockout应用开发指南 第三章:绑定语法(1) 第三章所有代码都需要启用KO的ko.applyBindings(viewModel);功能,才能使代码生效,为了节约篇幅,所有例子均省略了此 ...
- 【转载】salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)
salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL) salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesfo ...
随机推荐
- ajax请求获取的数据无法赋值给全局变量问题总结
一.总结: 1.问题描述: 今天做项目遇到在用表单显示详细信息的过程中ajax请求获取的数据无法赋值给全局变量的情况,从列表页面进入详情页,在详情页面被渲染了之后就会调用js文件里的接口向服务器请求数 ...
- vue.js 2.0开发(4)
使用vue-cli,首先安装: npm install -g vue-cli 安装完了执行vue命令,会出现 vue init <template-name> <project-na ...
- SpringMVC使用的几个要点
1.使用 @RequestParam("username") 来对应参数名的时候,这个参数必须要传入,否则会报错.没加@RequestParam则可传可不传 @RequestMap ...
- 如何在Delphi里面查看程序的汇编代码?
开发工具:Delphi 10 Update2 1,在源代码中设置至少一个断点,目的让我们进入调试模式. 2,启动调试,当程序进入调试模式,停留在我们设定的断点处时候,使用快捷键"CTRL+A ...
- InvocationException: GraphViz's executables not found
当我在visualize决策树,运行以下代码时,报错: InvocationException: GraphViz's executables not found import pydotplus f ...
- 在java下使用log4j2记录日志
1.定义: log4j2 指log4j 2.X及以上版本 2.安装 log4j-core-xx.jarlog4j-api-xx.jarlog4j-web-xx.jar(web项目的需要引用) 3.配置 ...
- 每天一个 Linux 命令(20):find命令之exec
find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了. exec解释: -exec 参数后面跟的是command ...
- Esfog_UnityShader教程_遮挡描边(原理篇)
咳咳,有段时间没有更新了,最近有点懒!把不少精力都放在C++身上了.闲言少叙,今天要讲的可和之前的几篇有所不同了,这次是一个次综合应用.这篇内容中与之前不同主要体现在下面几点上. 1.之前我们写的都是 ...
- 在 Hibernate 中出现 database product name cannot be null 时怎么解决?
今 天在做一个SH项目结合的时候忽然出现了,这样的错误,我开始也不知道怎么办,便上网查,看一些高手回答都是说,检查 hibernate.cfg.xml 这个配置文件,或是一些其它的配置,于是我便看了一 ...
- System.Threading.Timer 定时器的用法
System.Threading.Timer 是C# 中的一个定时器,可以定时(不断循环)执行一个任务.它是在线程上执行的,具有很好的安全性.为此 .Net Framework 提供了5个重载的构造 ...