Comparing JavaScript vs AngularJS?



我知道JavaScript是一种编程语言,而AngularJS是与JavaScript一起使用的基于MVC的框架。

但我有一项任务需要比较:

  • JavaScript与jQuery语法
  • 以及JavaScript与AngularJS语法

现在,对于JavaScript和jQuery部分,我通过展示DOM方法和jQuery等效方法之间的比较,以及如何最小化函数,以及如何使用jQuery而不是JavaScript非常容易地访问不同元素和几行代码,轻松地对它们进行了比较。

但在AngularJS与JavaScript的情况下,由于AngularJS是一个框架,我应该如何比较它的语法?

是否可以比较两种可以在JavaScript和AngularJS中完成但使用AngularJS很容易完成的事情?因为据我所知,JavaScript和AngularJS是两个独立的东西。

我是Web开发的新手,3周前就已经开始开发HTML5了,所以请原谅我的错误。

Angular和jQuery都是用Javascript编写的库/框架。要求我将Angular与Javascript进行比较,就像要求对面包和面粉进行比较一样。

然而,DOM操作的浏览器API是用与Angular完全不同的思想实现的,所以我假设这就是您的任务所期望的。

需要重点关注的一点是,这种模式根本不同。Angular采用声明性方法,而DOM和jQuery都是命令式

声明性的

一种构建计算机程序结构和元素的风格,它在不描述控制流的情况下表达计算的逻辑。[1]

声明性语言是一种描述你想要什么,而不是应该如何实现的语言。这在很大程度上是Angular的指令方法。

强制性

[一种风格],其中算法是根据显式步骤来实现的。[1]

当我们使用DOMAPI或jQuery编写代码时,我们必须详细说明流程的"如何"。

让我们以数据绑定为例。我们希望将文本输入中的值绑定到标签中。

使用DOM

<input type='text' id='bind-input'>
<label id='bind-output'></label>

以及我们的Javascript:

window.addEventListener('load', function() {
var input = document.getElement('bind-input'),
output = document.getElement('bind-output');
input.addEventListener('change', function() {
output.innerText = input.value;
});
});

我们必须非常具体地解释我们需要浏览器做什么。我们必须倾听某些事件,确保DOM已加载,跟踪元素的ID,所有这些都只是为了在输入更改时更新标签。

使用jQuery

<input type='text' id='bind-input'>
<label id='bind-output'></label>

我们仍然需要一些Javascript:

$(document).ready(function() {
var $input = $('#bind-input'),
$output = $('#bind-output');
$input.on('change', function() {
$output.html($input.value());
});
});

正如您所看到的,这与DOM方法非常相似。我们必须向浏览器解释我们希望它做什么。

带角度

<input type='text' ng-model='bound'>
<label ng-bind='bound'></label>

我们甚至不需要为此编写任何代码就可以使用Angular!(很明显,我们需要一个空控制器,但你明白了)。

声明性方法主要是我们从实现细节中抽象出来的一种方式。Angular指令可以很容易地将这些常见行为封装到小型可重用组件中,这些组件可以以声明的方式应用于HTML。

首先,您(或分配问题的人)似乎有点误解了jQuery/AngularJS是什么。jQuery和Javascript并不互斥,AngularJS和Javascript也不互斥。简言之:

  • Javascript:web浏览器可以在网页中运行的所有代码(呃,我们在这个问题中关心的:-)都是用Javascript编写的
  • jQuery是一个用Javascript编写的函数库,可以在网页中使用。使用jQuery编写东西就是使用Javascript编写东西,使用jQuery提供的额外功能
  • AngularJS是一个用Javascript编写的函数库,可以在网页中使用。使用AngularJS编写东西就是使用Javascript编写东西,使用AngularJS提供的额外功能

(注意我对jQuery/AngularJS的定义之间的相似之处。是的,有些人说AngularJS是一个框架,但它只是人们编写的一组Javascript函数)

第二,我觉得这个问题其实有点言过其实。我会给自己一个在网络浏览器中完成的标准任务,比如

  • 从Twitter提要中获取最后20个项目,并在网页中显示结果

使用

  • 纯Javascript(无框架或库)
  • jQuery,遵循"常规"/"良好"的jQuery实践
  • AngularJS,坚持"通常"/"良好"的AngularJS实践

然后,您可以比较为实现上述每一项所经历的过程,以及为每一项编写的最终代码。

您可以比较JavascriptJquery,因为jQuery是一个库,它可以将复杂的javascript代码最小化为简单的方法和属性。您可以在一行中解释jquery少写多做,但不能解释AngularJS Framework。

DOM操作是jQuery提供的一个强大功能。您可以操作DOM元素来更改页面的样式。播放带有DOM元素的捉迷藏游戏,等等。没有类似模板的功能,您只需要根据自己的需求对应用程序进行编码。例如,如果您想将keyup事件绑定到文本框,并想在span中显示更改后的值,那么您需要编写类似的代码

$('input').on('keyup',function(){
$('span').text(this.value);
)};

另一方面,数据绑定是AngularJs可以实现的强大功能。这种类型的框架通常用于SPA(单页应用程序),其中必须进行数据绑定,例如online test。使用框架的优点是,您将获得包含框架的模板。因此,您可以使用ng-模块将元素绑定在一起,如

<input type='text' ng-model='inputElem'>
<span ng-bind='inputElem'></span>

而且,我认为比较可以是,

  1. Javascript和Jquery
  2. Jquery和Angular(不是Javascript和Angular)

这里还有一件事,Javascript是一种语言,Jquery是一个库,Angular是一个框架。

以下是链接,将清除更多关于图书馆和框架,

  1. JavaScript框架和库之间的区别是什么
  2. AngularJS在哪些方面比jQuery做得更好
  3. jQuery与AngularJS:比较与迁移演练

最新更新