繁体   English   中英

脚本语言和编译语言

[英]Scripting Language and Compiled Language

我有两个问题:

  1. Jquery / MooTools如何扩展Javascript的语法? 我的意思是为什么你只能为Jquery和MooTools提供Javascript中不存在的新语法?
  2. 由于MooTools允许用户拥有类,继承。 像这样的解释语言越来越接近编译语言。 他们最终会取代Java(在JVM上运行)吗? 或者是否有Java的特定方面,Javascript的扩展永远不会实现?

这可能是愚蠢的问题,但我真的想要一些关键字来解释它们。

谢谢

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 );
},

他们没有扩展javascript的语法。 他们仍然必须遵守javascript的所有语法规则。

jQuery没有扩展javascript的语法 - 它只使用一些花哨的技巧,比如使用$ variable。 MooTools的类实际上是一个实例化的类。 既没有扩展javascript的语法,也只是通过巧妙地使用变量使它看起来如此。

至于关于解释和编译语言的第二个问题,答案有点复杂,可能超出了我的范围。 试试谷歌

Jquery / MoonTool如何扩展Javascript的语法? 我的意思是为什么你可以为Jquery和MoonTool提供Javascript中不存在的新语法?

你不能。 Javascript语法非常灵活,因此您可以通过很多方法为现有语法添加新语义(含义/功能)。

由于MoonTool允许用户拥有类,继承。 像这样的解释语言越来越接近编译语言。 他们最终会取代Java(在JVM上运行)吗?

解释与编译与语言语法或语义无关。 此外,Javascript和Java现在通常都是JIT编译的。

或者是否有Java的特定方面,Javascript的扩展永远不会实现?

静态类型检查一件事(当然,除非语言规范相应地改变。但这很可能不会以理智的方式)。 或原生支持正常的整数。

像jQuery和MooTools这样的库不会“扩展”JavaScript语法。 这都是合法的JavaScript。 他们只是以你不熟悉的方式使用它。 例如,jQuery中的$只是变量的名称,因为JavaScript变量可以包含$

此外,不,JavaScript是一种完全不同于Java的动物。 JavaScript 一种面向对象的语言,但它的完成方式不同。 我不熟悉MooTools,但他们没有做任何特别的事情。 看起来他们正在“改变”JavaScript,但事实并非如此。 编译JavaScript是没有意义的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM