我有两个问题:
这可能是愚蠢的问题,但我真的想要一些关键词来解释它们。
由于
答案 0 :(得分:3)
JQuery给出重新定义语言印象的一种方法是使用$运算符。然而,可能不太清楚的是$只是在窗口(全局)范围内声明的函数,因为$是JavaScript中的有效变量名:
来自消息来源:
jQuery = window.jQuery = window.$ = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init( selector, context );
},
答案 1 :(得分:1)
他们没有扩展javascript的语法。他们仍然必须遵守javascript的所有语法规则。
答案 2 :(得分:1)
jQuery没有扩展javascript的语法 - 它只使用一些花哨的技巧,比如使用$ variable。 MooTools的类实际上是一个实例化的类。既没有扩展javascript的语法,也只是通过巧妙地使用变量使其显示出来。
至于关于解释和编译语言的第二个问题,答案有点复杂,可能超出了我的范围。试试Google。
答案 3 :(得分:1)
Jquery / MoonTool如何扩展 Javascript的语法?我的意思是为什么你可以在Javascript中使用Jquery和MoonTool的新语法?
你做不到。 Javascript语法非常灵活,因此您可以通过很多方法为现有语法添加新语义(含义/功能)。
由于MoonTool允许用户拥有 阶级,遗产。解读 像这样的语言越来越近了 编译语言。他们会吗 最终取代Java(运行于 JVM)?
解释与编译与语言语法或语义无关。此外,Javascript和Java现在通常都是JIT编译的。
或者是Java的特定方面 对Javascript的扩展会 永远不会实现?
静态类型检查一件事(当然,除非语言规范相应地改变。但这很可能是以理智的方式)。或原生支持正常的整数。
答案 4 :(得分:0)
jQuery和MooTools等库不会“扩展”JavaScript语法。这都是合法的JavaScript。他们只是以你不熟悉的方式使用它。例如,jQuery中的$
只是变量的名称,因为JavaScript变量中可以包含$
。
此外,不,JavaScript是一种完全不同于Java的动物。 JavaScript 是一种面向对象的语言,但它的完成方式不同。我不熟悉MooTools,但他们没有做任何特别的事情。看起来他们正在“改变”JavaScript,但事实并非如此。编译JavaScript是没有意义的。