CoffeeScript

JavaScript

CoffeeScript 去抖动函数

30 0

去抖动函数 问题 你想只执行某个函数一次,在开始或结束时把多个连续的调用合并成一个简单的操作。 解决方案 使用一个命名函数:debounce: (func, threshold, execAsap) ->timeout = null(args...) ->obj = thisdelayed = ->func.apply(obj, args) unless execAsaptimeout = nullif timeoutclearTimeout(timeout)else if (execA

JavaScript

CoffeeScript 生成可预测的随机数

31 0

生成可预测的随机数 问题 你需要生成在一定范围内的随机数,但你也需要对发生器进行“生成种子”操作来提供可预测的值。 解决方案 编写你自己的随机数生成器。当然有很多方法可以做到这一点,这里给出一个简单的示例。 该发生器绝对不可以以加密为目的!class Rand# 如果没有种子创建,使用当前时间作为种子constructor: (@seed) -># Knuth and Lewis' improvements to Park and Miller's LCPRNG@multiplier

JavaScript

CoffeeScript 指数对数运算

73 0

指数对数运算 问题 你需要进行包含指数和对数的运算。 解决方案 使用JavaScript的Math对象来提供常用的数学函数。# Math.pow(x, y) 返回 x^y Math.pow(2, 4) # => 16# Math.exp(x) 返回 E^x ,被简写为 Math.pow(Math.E, x) Math.exp(2) # => 7.38905609893065# Math.log returns the natural (base E) log Math.log(5) # =&g

JavaScript

CoffeeScript 使用 Jasmine 测试

48 0

使用 Jasmine 测试 问题 假如你正在使用CoffeeScript写一个简单地计算器,并且想要验证其功能是否与预期一致。可以使用Jasmine测试框架。 讨论 在使用Jasmine测试框架时,你要在一个参数(spec)文档中写测试,文档描述的是代码需要测试的预期功能。 例如,我们希望计算器可以实现加法和减法的功能,并且可以正确进行正数和负数的运算。我们的spec文档如下列所示。# calculatorSpec.coffee describe 'Calculator', ->it

JavaScript

CoffeeScript 将数组连接

40 0

将数组连接 问题 你希望将两个数组连接到一起。 解决方案 在JavaScript中,有两个标准方法可以用来连接数组。 第一种是使用JavaScript的数组方法concat():array1 = [1, 2, 3] array2 = [4, 5, 6] array3 = array1.concat array2 # => [1, 2, 3, 4, 5, 6] 需要指出的是array1没有被运算修改。连接后形成的新数组的返回值是一个新的对象。 如果你希望在连接两个数组后不产生新的对象,那么你可以使用下

JavaScript

CoffeeScript 生成随机数

22 0

生成随机数 问题 你需要生成在一定范围内的随机数。 解决方案 使用JavaScript的Math.random()来获得浮点数,满足0<=X<1.0。使用乘法和Math.floor得到在一定范围内的数字。probability = Math.random() 0.0 <= probability < 1.0 # => true# 注意百分位数不会达到 100。从 0 到 100 的范围实际上是 101 的跨度。 percentile = Math.floor(Math.ran

JavaScript

CoffeeScript 服务端和客户端的代码重用

47 0

服务端和客户端的代码重用 问题 当你在CoffeeScript上创建了一个函数,并希望将它用在有网页浏览器的客户端和有Node.js的服务端时。 解决方案 以下列方法输出函数:# simpleMath.coffee# these methods are private add = (a, b) ->a + bsubtract = (a, b) ->a - bsquare = (x) ->x * x# create a namespace to export our public meth

JavaScript

CoffeeScript SQLite

29 0

SQLite 问题 你需要Node.js内部与SQLite数据库连接的接口。 解决方案 使用SQLite 模块。sqlite = require 'sqlite'db = new sqlite.Database# The module uses asynchronous methods, # so we chain the calls the db.execute exampleCreate = ->db.execute "CREATE TABLE snacks (name