我正在尝试将functionJavascript 转换为CoffeeScript.这是代码:
function convert(num1, num2, num3) {
return num1 + num2 * num3;
}
Run Code Online (Sandbox Code Playgroud)
但是我怎么能在CoffeeScript中做到这一点?
我正在尝试从这样的HTML源运行该函数:
<script type="text/javascript" src="../coffee/convert.js"></script>
<script type="text/javascript">
convert(6, 3, 10);
</script>
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我得到一个错误说: ReferenceError: Can't find variable: convert
怎么纠正这个?
我不确定为什么PhantomJS是必要的,我希望有人可以提供帮助.
我正在开发一个需要在客户端和服务器端工作的JS应用程序(在浏览器和Node.js中的Javascript中),我希望能够重用代码的各个部分.用于双方.
我发现这window是一个只能在浏览器和global节点上访问的变量,所以我可以检测代码在哪个环境中执行(假设没有脚本声明window变量)
他们是两个问题.
我应该如何检测代码在哪个浏览器中运行.例如,这段代码是否正常.(此代码是内联的,意味着它被一些全局代码包围,可以在两种环境中重用)
if window?
totalPath= "../examples/#{path}"
else
totalPath= "../../examples/#{path}"
Run Code Online (Sandbox Code Playgroud)如何在两种环境中使用全局变量?现在,我正在做以下事情,但这确实感觉不对.
if window?
window.DocUtils = {}
window.docX = []
window.docXData= []
else
global.DocUtils= {}
global.docX = []
global.docXData = []
Run Code Online (Sandbox Code Playgroud)在过去的几年里,我几乎专注于后端任务,我刚刚注意到,在我缺席的情况下,大多数JavaScript(和CoffeeScript)项目都变得更加漂亮.
我主要在rails环境中工作,几乎所有的JavaScript/jQuery都看起来像这样:
$(an_element).an_event(function() {
stuff_i_want_to_do;
})
$(another_element).some_other_event(function() {
some_other_stuff_i_want_to_do;
})
Run Code Online (Sandbox Code Playgroud)
抛开回调,这几乎就是它.
无论如何,只是浏览一些其他人的代码,并注意到许多javascripters在我不在的时候变得更漂亮.这并不复杂,但它是我所见过的更新/更好的JavaScript方法的典型:
jQuery ->
if $('#products').length
new ProductsPager()
class ProductsPager
constructor: (@page = 1) ->
$(window).scroll(@check)
check: =>
if @nearBottom()
@page++
$(window).unbind('scroll', @check)
$.getJSON($('#products').data('json-url'), page: @page, @render)
#
nearBottom: =>
$(window).scrollTop() > $(document).height() - $(window).height() - 50
render: (products) =>
for product in products
$('#products').append Mustache.to_html($('#product_template').html(), product)
$(window).scroll(@check) if products.length > 0
Run Code Online (Sandbox Code Playgroud)
我一直在寻找有关JavaScript(和/或CoffeeScript)的现代最佳实践/模式的资源,但我没有太多运气.所以简而言之,我应该在哪里加快速度:最好的javascript/coffeescript现代模式和实践?
我有一个数组:
array = [..., "Hello", "World", "Again", ...]
Run Code Online (Sandbox Code Playgroud)
我怎么能检查阵列中是否有"世界"?然后删除它,如果它存在?并提到"世界"?
有时候我可能想用正则表达式匹配一个单词,在这种情况下我不会知道确切的字符串所以我需要引用匹配的字符串.但在这种情况下,我肯定知道这是"世界",这使它更简单.
谢谢你的建议.我找到了一个很酷的方法:
怎么来这个字符串
"answer
to life
the universe
and everything
is
#{40+2}
"
Run Code Online (Sandbox Code Playgroud)
汇编成
" answer to life the universe and everything is " + (40 + 2) + "";
Run Code Online (Sandbox Code Playgroud)
我如何强制coffescript保持多线(保持字符串插值完整):
"answer \
to life \
the universe \
and everything \
is \
"+(40+2)
Run Code Online (Sandbox Code Playgroud) 反正有没有在保存时轻松编译CoffeeScript?我正在使用TextMate或Sublime Text 2.
我主要是一个Rails开发人员,所以在为我公司的Hubot实例添加一个小脚本时,我希望能够完成以下任务:
robot.brain.data.contacts ||= {}
Run Code Online (Sandbox Code Playgroud)
或者,如果它尚不存在,则仅生成此新哈希.想法是我希望通过脚本动态添加联系人数组,这样我就不必修改Hubot的源代码了,我显然不想覆盖我添加的任何联系人.
问题:是否有像Rails || =这样的快速小构造,我可以在Coffeescript中使用它来实现上述目标?
干杯.
有没有办法看到所有已经开启的州$stateProvider?
在这种情况下,我希望我的状态分配分布在许多文件中.我想在不同的文件中run或config在不同的文件中检查构建的状态.
例如:
# component1.coffee
angular.module('zoo').config ($stateProvider) ->
$stateProvider.state 'component1',
url: '/component1'
template: _template
controller: 'Component1Ctrl'
# component2.coffee
angular.module('zoo').config ($stateProvider) ->
$stateProvider.state 'component2',
url: '/component2'
template: _template
controller: 'Component2Ctrl'
# componentNavigation.coffee
angular.module('zoo').run ($state) ->
console.log 'All configured states:', $state.configuredStates # doesn't exist.
Run Code Online (Sandbox Code Playgroud)
有什么东西会列出这两个州,component1并且component2?
我有一些用CoffeeScript编写的代码,我想用Google Closure Compiler优化生成的JavaScript,所以这些文件需要用JSDoc记录.
我的问题是,如何记录*.coffee文件以生成包含用于闭包编译器的工作JSDoc的javascript?
还有一个问题:有没有办法在*.coffee中保留单行注释?
coffeescript ×10
javascript ×7
node.js ×3
angular-ui ×1
angularjs ×1
jquery ×1
jsdoc ×1
phantomjs ×1
testing ×1
textmate ×1