Javascript CoffeeScript在JS中转换为jQuery

Javascript CoffeeScript在JS中转换为jQuery,javascript,jquery,coffeescript,Javascript,Jquery,Coffeescript,我的印象是,coffeescript将其代码转换为纯、普通的javascript。但是,有些部分(如ID选择器)会转换为jQuery ID选择器。这意味着我必须链接jQuery脚本才能运行此代码 这背后的原因是什么?为什么要翻译成#(jQuery)ID选择器而不是document.getElementByID(普通javascript)?你错了。ID选择器不是CoffeeScript语法的一部分,它们是jQuery的一部分。在CoffeeScript中使用$(“#随便什么”)时,您编写的是jQu

我的印象是,coffeescript将其代码转换为纯、普通的javascript。但是,有些部分(如ID选择器)会转换为jQuery ID选择器。这意味着我必须链接jQuery脚本才能运行此代码


这背后的原因是什么?为什么要翻译成
#
(jQuery)ID选择器而不是
document.getElementByID
(普通javascript)?

你错了。ID选择器不是CoffeeScript语法的一部分,它们是jQuery的一部分。在CoffeeScript中使用
$(“#随便什么”)
时,您编写的是jQuery,而不是CoffeeScript。CoffeeScript不是“编译到jQuery”,它已经是jQuery了


此外,
document.getElementById
不是“普通JavaScript”。JavaScript是一种语言,就像CoffeeScript是一种语言一样。DOM访问是一种通过浏览器向JavaScript提供的API。服务器端JavaScript与浏览器JavaScript一样是“普通JavaScript”,它没有
文档

jQuery是用JavaScript编写的库,而不是语言


我们只是将这个库与普通JavaScript一起使用,而它与Coffeescript无关。

那么您的意思是,您可以在jQuery中编写部分Coffeescript?因此,coffeescript将直接传输jQuery,而不是转换为javascript?不,一点也不,不是这样。我是说,当您在CoffeeScript中编写
$(…)
jQuery(…)
时,您选择使用jQuery。CoffeeScript没有为选择器提供任何特殊语法,它也不能。CoffeeScript无法知道您打算将
$
用于DOM查询。我认为您对jQuery是什么感到困惑。这是一个图书馆。你不用“用jQuery”写东西,你用JavaScript或CoffeeScript写东西,在这两种语言中,你都用jQuery。我明白了。那么,是因为coffeescript或javascript无法实现ID选择器,所以需要依赖于jQuery的javascript吗?关键是当您键入
$(…)
时,coffeescript没有翻译任何内容。它不会将其“翻译”到jQuery,就像它不能将其翻译到
document.getElementById
一样。这只是CoffeeScript中的函数调用和JavaScript中的函数调用。这仍然是不对的。你在CoffeeScript中输入的所有内容,CoffeeScript都可以“处理”。根据定义,任何CoffeeScript无法“处理”的内容都是语法错误。但它通过将字符串和函数转换为字符串和函数来处理字符串和函数。这就是jQuery选择器的全部功能,一个接受字符串的函数。在CoffeeScript中,它可能看起来像
$'#myElement'
,但它仍然只是一个名为
$
的函数,接受字符串。这正是我的想法。为什么coffeescript会转换成依赖于jQuery的javascript?javascript本身不能实现ID选择器吗?Marco,很抱歉,你的观察是完全错误的。请参阅CoffeeScript不会“翻译”为依赖于jQuery的JavaScript。它被翻译成JavaScript。如果您在CoffeeScript中使用jQuery,您将需要在JavaScript中使用jQuery,这与任何其他库一样。jQuery不是魔术,它只是简单的旧JavaScript,如果您使用它,您需要包含它。