角度js和java脚本之间的区别

时间:2016-10-21 07:55:50

标签: javascript angularjs

请回复   - 角js的作用是什么?   - java脚本的作用是什么?   - 使用angularjs时   - 使用java脚本时   - 哪一个是强大的

1 个答案:

答案 0 :(得分:1)

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

然而,用于DOM操作的浏览器API实现了与Angular根本不同的想法,因此我将假设这是您的任务期望您识别的内容。

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

声明

  

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

声明性语言是指您想要描述的内容而不是应该如何完成的语言。这是Angular的指令方法。

势在必行

  

[样式],其中算法是根据显式步骤实现的。 [1]

当我们使用DOM API或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方法非常相似。我们必须向浏览器完全解释我们想要它做什么。

使用Angular

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

我们甚至不需要编写任何代码来使用Angular! (显然我们需要一个空的控制器,但你明白了。)

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