COFFEESCRIPT - 技术教程文章

[CoffeeScript]使用Yield功能【代码】

CoffeeScript 1.9 开始提供了类似ES6的yield关键字。 自己结合co和bluebird做了个试验。co -- http://npmjs.org/package/co -- for generatorbluebird -- https://www.npmjs.com/package/bluebird for Promiseco = require ‘co‘ Promise = require ‘bluebird‘msg = "good" func1 = () ->new Promise((resolve)->setTimeout(()->console.log "func1"resolve({a:10,b:2}), 1000))func2 = (opts) ->{a,b}= optsnew Promise((res...

[CoffeeScript]以优美方式编写JavaScript代码

??我用JavaScript 编程很多年了,写了大量的JS代码,即便是我这样的经历,但我仍然还在努力地去写出更优美的JS代码,在这篇文章中,我将探索为什么写出漂亮的JS代码是如此困难,如何使用CoffeScript(一种简约且能编译成JS的语言)改善它。什么是优美的代码?我想从个人观点来声明如何定义优美代码1、优美的代码是使用更少的代码解决问题;2、优美的代码是可读而且易理解的3、优美的代码是一段既没有什么可以需要添加也没有什么多余...

coffeescript使用的方式汇总

Coffeescript作为Javascript低调的小弟实在是有过人之处,使用它可以增进开发效率,减少代码错误, 关键是能大幅提升开发愉悦感。我越来越觉得只要可能就在自己的项目中把coffee用起来。 然而也许你和我一样,在了解完coffeescript的语法后准备一试身手的时候,却面对如何把它引入项目而犯起愁来。 像老板一样指挥你的代码 CoffeeScript提供了一堆酷毙了的数组迭代方法。最好的事莫过于这不仅仅能工作于数组,还能工作于jQuery对象...

coffeescript使用的方式汇总_javascript技巧

Coffeescript作为Javascript低调的小弟实在是有过人之处,使用它可以增进开发效率,减少代码错误, 关键是能大幅提升开发愉悦感。我越来越觉得只要可能就在自己的项目中把coffee用起来。 然而也许你和我一样,在了解完coffeescript的语法后准备一试身手的时候,却面对如何把它引入项目而犯起愁来。 像老板一样指挥你的代码 CoffeeScript提供了一堆酷毙了的数组迭代方法。最好的事莫过于这不仅仅能工作于数组,还能工作于jQuery对象...

CoffeeScript环境安装for mac【代码】

要安装CoffeeScript的话,会需要先安装Node.js以及Node.js的套件管理工具 – npm (Node Package Manager)。以下是在Mac系统下的安装过程。如果在安装过程中出现权限不足的错误讯息,请使用sudo暂时取得安装的权限。安装Node.js。官网:http://nodejs.org/> git clone git://github.com/joyent/node.git > cd node > ./configure > make > sudo make install安装npm。官网:http://npmjs.org/> curl http://npmjs.org/install.sh | ...

javascript-如何在coffeescript js中使用Rails助手【代码】

我不太了解助手在视图/控制器中的工作方式.我没用过 我的具体问题是:几乎所有视图都实现了AJAX.在我的大多数控制器中,update.js.coffee和create.js.coffee具有以下代码的某种形式:jQuery -><% if @product.errors.any? %>error_info = '<%= j(render :partial => "shared/errors", :locals => { :record => @product }) %>'popup error_info<% else %> . . .弹出窗口是显示某些元素的JavaScript函数. 有没有一种方法可以将其抽象...

javascript – 在同一个项目中同时使用coffeescript和typescript【代码】

我实际上试图在同一个项目中使用coffeescript和typescript. 事实上,我希望能够在编码时选择我喜欢哪一个. 事实是,由于使用coffeescript生成的javascript,typescript生成的javascript似乎没有按预期工作 说明: 我用coffeescript编写了一个Controller类,当我在coffeescript文件中扩展它时,它运行得很好:Controller = require('../node_modules/Controller/Controller')class HelloController extends ControllerindexAction: (name...

javascript-在CoffeeScript类中装饰函数【代码】

我正在编写一个骨干应用程序,我想编写一个经过身份验证的装饰器,可以用来装饰路由器类中的方法(路由)列表. 因此,我使用了几种方法的路由器,并尝试了类似的方法.但是,当我调用要装饰的路线时,装饰器未连接.class MyApp extends Backbone.Routerroutes: '' : 'home''foo' : 'foo''bar' : 'bar'authenticated: ['foo', 'bar'] initialize: ->@decorateAuthenticatedFunctions() decorateAuthenticatedFunction...

javascript-Coffeescript隐式返回对性能和副作用的影响【代码】

我目前正在开发一个利用Express.js和Mongoose的node.js Web服务.最近,我认为我会尝试使用CoffeeScript,因为我听说会有一些好处.但是,我注意到有些不安,我很好奇有人是否可以澄清. 这是我使用纯JavaScript的路线之一:router.post('/get/:id', decorators.isManager, function(req, res) {Group.findById(req.params.id, function(err, grp) {if(err) res.status(500).end();if(grp == null) res.status(500).send('The group could...

将d3.js JavaScript函数转换为CoffeeScript【代码】

害怕我在如何将这个JavaScript转换为类中的CoffeeScript时犯了一个简单的错误 在这original example of a world map我们有一个功能:var quantize = d3.scale.quantize().domain([0, .15]).range(d3.range(9).map(function(i) { return "q" + i + "-9"; }));然后在渲染地图时调用它:.attr("class", function(d) { return quantize(rateById.get(d.id)); })我们留下类似class =“q8-9这就是我们想要的东西. 将其转换为CoffeeScript...

javascript – 如何在CoffeeScript中迭代对象中的键和值?【代码】

我有一个对象(一个“关联数组”,也就是说 – 也称为普通的JavaScript对象):obj = {} obj["Foo"] = "Bar" obj["bar"] = "Foo"我想使用CoffeeScript迭代obj,如下所示:# CS for elem in obj上面的CS代码编译成JS:// JS for (i = 0, len = obj.length; i < len; i++)这种情况不合适. JavaScript的方式是(obj中的var键),但现在我想知道:我怎么能在CoffeeScript中做到这一点?解决方法:用于L. Relevant documentation的x,y.ages = {}...

python – 在生产中使用Flask编译Coffeescript【代码】

我有一个Flask应用程序,我正在生产中运行.现在它有一个很丑的js文件,我想要突破并重写像Coffeescript这样的东西.我正在考虑像Flask-Cake这样的东西来简化CoffeeScript编译.但是,我不知道这样的东西会如何适用于制作.我应该有一个脚本在部署之前编译coffeescript文件,对吧?我从来没有使用过这种特殊布局的系统 – 未编译的服务器端,但编译了客户端.这里的标准程序是什么?解决方法:你可能正在寻找Flask-Assets. 网站示例:from fla...

javascript – .bind函数与CoffeeScript【代码】

参见英文答案 > Ember computed properties in Coffeescript 3个当我尝试转换以下代码片段时……result.pause = function() { cachedValue = this();isPaused(true); }.bind(result);使用http://js2coffee.org/它返回result.pause = ->cachedValue = this()isPaused true .bind(result)但是,当您尝试编译它时,该代码是不正确的,您将返回Error Unexpected’.’ 使用CoffeeScript在这种情...

javascript – Coffeescript,我怎么写这个排队函数的例子,尤其是循环?【代码】

我试图在我的腰带上提供一些例子,说明你如何在CoffeeScript中使用不同的方法来实现JavaScript.在这个排队函数的例子中,我对如何在CoffeeScript中处理它感到困惑wrapFunction = (fn, context, params) ->return ->fn.apply(context, params) sayStuff = (str) ->alert(str)fun1 = wrapFunction(sayStuff, this, ['Hello Fun1'])fun2 = wrapFunction(sayStuff, this, ['Hello Fun2'])funqueue = []funqueue.push(fun1)funqueu...

javascript – CoffeeScript中$(document).on和($document).on之间的区别?【代码】

我的朋友在他的CoffeeScript代码中使用($document).on.这是否与通常的$(文件).on不同,如果是这样,以什么方式?解决方法:在CoffeeScript中,使用参数调用函数不需要括号. 例如:console.log("Hello") // Hello console.log "Hello" // Hello所以,请考虑这些是等价的:$document = $(document) $document = $document $document = ($document)但是,在某些情况下,括号是消除意义歧义所必需的. 例如,您希望在返回$()函数时调用on函数:...

Ramaze CoffeeScript:是否可以使用Ramaze自动生成Javascript?【代码】

我试图找到一种从CoffeeScript文件自动生成Javascript的方法,就像你在Sinatra中一样容易做到这样:require 'sinatra' require 'coffee-script' get '/*.js' doname = params[:splat][0]file_name = File.join("#{name}.coffee")pass unless File.exists?(file_name)content_type(:js, :charset => 'utf-8')coffee(IO.read(file_name)) end这样,在我的代码中,即使我只有.coffee文件,我也可以像.js文件一样存在.与使用客户端CoffeeSc...

使用coffeescript编写node.js项目的方法汇总

Node.js 基于JavaScript编写应用,JavaScript是我的主要开发语言。CoffeeScript是编译为JavaScript的编程语言。其实CoffeeScript语言因其可以一对一的翻译为JavaScript的特性,使用起来也非常灵活。将其引入项目的方式也有很多种,在此,我将使用coffeescript编写node.js项目的方法做一个汇总。 直接使用coffee指令运行纯coffeescript项目 一般提起coffeescript,自然而然地会想到他是javascript的小弟,总脱离不了js的阴影。其实你...

javascript – 如何在CoffeeScript中使用模数编写交替行函数?【代码】

我在这里有一个典型的JavaScript代码示例(将背景样式类应用于表中交替的奇数或偶数行的代码).我试图在CoffeeScript中重写这个,试图学习它. CoffeeScript范围语法不同,更具Ruby特色.我真的很感激你如何做到这一点的一个例子?function alternate(id){ if(document.getElementsByTagName){ var table = document.getElementById(id); var rows = table.getElementsByTagName("tr"); for(i = 0; i < rows.length; i++){ ...

使用javascript / coffeescript进行依赖注入以帮助测试【代码】

我正在我的网络应用程序中使用Jasmine进行一些测试.我正在使用Coffeescript来编写我的模型,服务和视图模型.class MyViewModelconstructor: ( @options ) ->@alert = new AlertelementId: 'my-alert-element-id'@service = new MyServicealertId: @alert.elementId现在我用茉莉花写一个测试describe 'MyViewModel', ->sut = nullbeforeEach ->sut = new MyViewModel()afterEach ->sut = nulldescribe 'constructor()', ->it 'create...

javascript – CoffeeScript,=>和 – > 之间有什么区别【代码】

参见英文答案 > ) over arrow (->) and vice versa' rel='nofollow' target='_blank'>CoffeeScript, When to use fat arrow (=>) over arrow (->) and vice versa 4个我是CoffeeScript的新手.我今天碰到了这个.example -> a ->和example ->b =>瘦箭和胖箭的区别是什么? 有人可以解释这些差异以及何时应该使用它们.解决方法:胖箭=>定义一个绑定到当前值的函数. 这对于回调尤其方便. 注意生成的...

总结coffeescript使用的方式

Coffeescript作为Javascript低调的小弟实在是有过人之处,使用它可以增进开发效率,减少代码错误, 关键是能大幅提升开发愉悦感。我越来越觉得只要可能就在自己的项目中把coffee用起来。然而也许你和我一样,在了解完coffeescript的语法后准备一试身手的时候,却面对如何把它引入项目而犯起愁来。像老板一样指挥你的代码CoffeeScript提供了一堆酷毙了的数组迭代方法。最好的事莫过于这不仅仅能工作于数组,还能工作于jQuery对象了。...

当jQuery遭遇CoffeeScript的时候使用分享_jquery

当我多年前初次接触jQuery时我感觉我来到了程序员的天堂。它极大简化了DOM操作。函数式编程变得如此容易,尽管更多适合RIA开发的框架近年来在浮现,但是我仍旧无法想象一个没有jQuery的程序人生是多么的罪恶,相信你也有同感~ 而来到CoffeeScript的世界,同样的美妙故事再次上演。在写了几行代码后我相信你将不会再想念原生的Javascript了。CoffeeScript包含了许多新特性,当将它与jQuery结合时,你会发现一片新天地。 本文的目的就...

使用coffeescript编写node.js项目的方法汇总_javascript技巧

Node.js 基于JavaScript编写应用,JavaScript是我的主要开发语言。CoffeeScript是编译为JavaScript的编程语言。其实CoffeeScript语言因其可以一对一的翻译为JavaScript的特性,使用起来也非常灵活。将其引入项目的方式也有很多种,在此,我将使用coffeescript编写node.js项目的方法做一个汇总。 直接使用coffee指令运行纯coffeescript项目 一般提起coffeescript,自然而然地会想到他是javascript的小弟,总脱离不了js的阴影。其实你...

当jQuery遭遇CoffeeScript的时候 使用分享

当我多年前初次接触jQuery时我感觉我来到了程序员的天堂。它极大简化了DOM操作。函数式编程变得如此容易,尽管更多适合RIA开发的框架近年来在浮现,但是我仍旧无法想象一个没有jQuery的程序人生是多么的罪恶,相信你也有同感~ 而来到CoffeeScript的世界,同样的美妙故事再次上演。在写了几行代码后我相信你将不会再想念原生的Javascript了。CoffeeScript包含了许多新特性,当将它与jQuery结合时,你会发现一片新天地。 本文的目的就...

javascript-如何使用CoffeeScript模拟现有代码?【代码】

我想模拟出MarkdownDeep,下面的代码在JavaScript中MarkdownDeep = new (function () {this.Markdown = function () {this.Transform = function (a) {return "html";};}; })();但是我在CoffeeScript中实现它有困难 我尝试了以下MarkdownDeep = new (->@Markdown = ->@Transform = (a) ->"html" )() window.MarkdownDeep = MarkdownDeep但它不起作用,特别是在我的单元测试中,markdown = new MarkdownDeep.Markdown()给出“未定义不是...

javascript-哪种风格最适合CoffeeScript中基于类的编程?【代码】

在这些替代方案中,哪一种是CoffeeScript中基于类的编程的最佳样式?# Alternative 1 class Personconstructor: (@name, @age) ->new Person "Peter", 19# Alternative 2 class Personname: ""age: 0constructor: (@name, @age) ->new Person "Peter", 19# Alternative 3 class Personconstructor: (@name = "", @age = 0) ->new Person "Peter", 19# Alternative 4 class Personconstructor: (name, age) ->@name = name ? ""@age ...

javascript-Coffeescript本地开发和Require.js插件性能【代码】

我们想试验coffeescript并最终将所有js代码转换为coffee.当我们使用require.js时,我认为关于本地开发的加载部件的最简单方法是使用require.js coffeescript plugin并相应地调整模块加载,例如var myModule = require('cs!myModule');如果我的理解是正确的,那么此过程是否意味着所有.coffee文件都是即时编译的,是否冒着迅速成为性能问题的风险,因此可能会大大降低开发速度吗? 如果是这样,您有什么建议?解决方法:我猜想这是否会成为...

python-没有node.js的CoffeeScript编译器?

我想使用CoffeeScript(CS)和CS编译器,但不必安装Node.js. 我看到CS的核心编译器是用JavaScript编写的,因此不需要安装Node.js,但是我找不到以Python / Java或任何其他语言编写的任何编译器,只有Node.js. 我想念什么吗? 我需要用Python编写自己的实现吗?

在VIM中在CoffeeScript和JavaScript文件之间快速切换【代码】

遗憾的是,我是Vimscript的新手,但是未能编写将.coffee文件切换为相应的.js文件的函数. 我想知道是否有人已经这样做了? 我知道vim-coffee-script插件有功能:CoffeeCompile监视,但是您看到的文件不是您存储在本地的真实文件. 具有这样的功能(如果将.coffee和.js文件存储在同一目录中)会很酷:function! GoToJS()" get current file path in a string variable" change the .coffee extention to a .js extention" open the .js fil...

javascript-将ES6导入与CoffeeScript和Browserify一起使用【代码】

CoffeeScript还不支持ES6导入. (请参见https://github.com/jashkenas/coffeescript/issues/3162) 我尝试使用链接中说明的以下语法:`import { createAction, handleAction, handleActions } from 'redux-actions'`但是Browserify会引发以下错误:Browerify { err: { [Error: Parsing file: 'import' and 'export' may only appear at the top level (2:0)]因此,我目前仍然坚持旧的传统方式:reduxActions = require 'redux-actions...