CoffeeScript

JavaScript

CoffeeScript HTTP 客户端

37 0

HTTP 客户端 问题 你想创建一个HTTP客户端。 解决方案 在这个方法中,我们将使用node.js's HTTP库。我们将从一个简单的客户端GET请求示例返回计算机的外部IP。 关于 GEThttp = require 'http'http.get { host: 'www.google.com' }, (res) ->console.log res.statusCode get函数,从node.js's http模块,发出一个GET请求到一个ht

JavaScript

CoffeeScript 提示参数

21 0

提示参数 问题 你的函数将会被可变数量的参数所调用。 解决方案 使用splat 。loadTruck = (firstDibs, secondDibs, tooSlow...) ->truck:driversSeat: firstDibspassengerSeat: secondDibstrunkBed: tooSlowloadTruck("Amanda", "Joel") # => { truck: { driversSeat: "Amand

JavaScript

CoffeeScript 创建一个不存在的对象字面值

23 0

创建一个不存在的对象字面值 问题 你想初始化一个对象字面值,但如果这个对象已经存在,你不想重写它。 解决方案 使用存在判断运算符(existential operator)。window.MY_NAMESPACE ?= {} 讨论 这行代码与下面的JavaScript代码等价:window.MY_NAMESPACE = window.MY_NAMESPACE || {}; 这是JavaScript中一个常用的技巧,即使用对象字面值来定义命名空间。这样先判断是否存在同名的命名空间然后再创建,可以避免重写已

JavaScript

CoffeeScript 检测每个元素

43 0

检测每个元素 问题 你希望能够在特定的情况下检测出在数组中的每个元素。 解决方案 使用Array.every(ECMAScript 5):evens = (x for x in [0..10] by 2)evens.every (x)-> x % 2 == 0 # => true Array.every被加入到Mozilla的Javascript 1.6 ,ECMAScript 5标准。如果你的浏览器支持,但仍无法实施EC5 ,那么请检查[ _.all from underscore.js](

JavaScript

CoffeeScript 重复字符串

22 0

重复字符串 问题 你想重复一个字符串。 解决方案 创建一个包含n+1个空元素的数组,然后用要重复的字符串作为连接字符将数组元素拼接到一起:# 创建包含10个foo的字符串 Array(11).join 'foo'# => "foofoofoofoofoofoofoofoofoofoo" 为字符串重复方法 你也可以在字符串的原型中为其创建方法。它十分简单:# 为所有的字符串添加重复方法,这会重复返回 n 次字符串 String::repeat = (n) ->

JavaScript

CoffeeScript 生成器模式

30 0

生成器模式 问题 你需要准备一个复杂的、多部分的对象,你希望操作不止一次或有不同的配置。 解决方案 创建一个生成器封装对象的产生过程。 Todo.txt格式提供了一个先进的但还是纯文本的方法来维护待办事项列表。手工输入每个项目有损耗且容易出错,然而TodoTxtBuilder类可以解决我们的麻烦:class TodoTxtBuilderconstructor: (defaultParameters={ }) ->@date = new Date(defaultParameters.date) or

JavaScript

CoffeeScript 大写单词首字母

56 0

大写单词首字母 问题 你想把字符串中每个单词的首字母转换为大写形式。 解决方案 使用“拆分-映射-拼接”模式:先把字符串拆分成单词,然后通过映射来大写单词第一个字母小写其他字母,最后再将转换后的单词拼接成字符串。("foo bar baz".split(' ').map (word) -> word[0].toUpperCase() + word[1..-1].toLowerCase()).join ' ' # => 'Foo Bar