Before we begin, let’s make this clear: anything jQuery can do or does, AngularJS can do it better and faster. So what’s the point in comparing them, you ask?

jQuery is a library and Angular is a MVVM framework. jQuery is included in Angular.js file so you can use the jQuery functions and features within Angular.

jQuery or AngularJS

jQuery or AngularJS

jQuery

We all know and love jQuery. It’s a simple, lightweight, cross-platform JavaScript library. jQuery is very efficient at letting you find, select, and modify DOM (Document Object Model) elements. Event handling, effects and animations (with CSS elements), and developing Ajax applications can be done from the single JS file. It also has a very large, very loyal user-base which regularly contributes to its sizeable repository of plugins.
There is jQuery UI (released in 2008), a fully-themed library of widgets and interactions, and jQuery Mobile (released 2010), an HTML5 framework; both built for implementation with jQuery.

pros and cons of jquery

pros and cons of jquery

jQuery is very easy to get a handle on and continues to be an amazing way to delegate events and normalize them, has beautiful method chaining and signatures. It simplified DOM manipulation and Ajax calls before it became a thing. Anything it lacks in ease of templating and data binding can be more-than-made-up for with other awesome open-source tools (Mustache and Handlebars, Knockout, and more of course).
It continues to grow because as mentioned earlier, it has a vast (and rightly so!) user-base.
It’s the classier, older sibling to all other JS frameworks and libraries. They may be more advanced, but they all still follow the lead set by jQuery.

AngularJs

If jQuery is classy, Angular is the cool kid in JS code-town.

Angular is an open-source structural framework for web apps brought to us by Google, so it’s pretty solid on credentials. It aims to simplify single-page applications by making development and testing phases easier. How does it do that? It brings “server-side development tools and capabilities to web client” turf. It takes to unit (Karma) and end-to-end (Protractor) testing like nobody’s business.

pros and cons of angularjs

pros and cons of angularjs

Instead of going the library/frameworks route, it has completely unique way of extending HTML into new constructs: directives (comments, classes, and attributes for manipulating DOM elements), controllers, services, constants, and filters. It “teaches your browser a new syntax” because it’s too damn cool to roll like others.

Where jQuery lacks, Angular delivers. A lot of us were sold when one of the key features included declarative template data-binding (two-way data binding), which is possible with 4 lines of code that has no JS whatsoever. Also, with Angular, you don’t need to create instances manually to call or configure dependencies. You can use the arguments of functions declaration like this:

 

myModule.controller('MyController', function($scope, dep1, dep2) {

  $scope.myMethod = function(arg1) {
    return dep1(arg1);
  };

});

It’s cleaner, faster, and more efficient. Angular encourages maintaining, testing, and extending applications by separating individual components and concerns.

Drawing Comparison:

Advantages of jQuery:

  • Easy to learn, easy to use: While the library is large, the APIs themselves are easy and intuitive. This makes them easier to learn. Everything you could need for manipulating DOM, creating CSS effects, and executing Ajax is right there, and instead of intimidating a beginner, it is fun.

  • Extendibility: You start out with a core library and extend its functionality per your needs with plugins. The repository is huge and consistently growing, thanks to a great community.

  • Community: But of course it’s a plus! Popularity practically equates to scores of developers actively coding, experimenting and improving upon the base. A lot of them are pretty damn creative, and you can use their interesting snippets, and get support if you ask nicely.

  • Browser Compatibility: No more textcontent or innertext (and related) issues, because the quirks have all been abstracted away by jQuery. Cross-browser support brings compatibility issues to a minimum. Both versions of jQuery support current and one preceding stable releases of Firefox, Chrome, Safari, and Opera, along with IE9+.

Disadvantages of jQuery:

  • Not built for larger apps: At its core, jQuery is a DOM manipulation library. While a lot of other platforms include it, you’ll need more than just jQuery to develop a complex app. Because it has…

  • No out-of-the-box features to support development: For larger and more complicated applications you will need to extend way beyond core with additional libraries and plugins. With several large libraries, you add size and dependencies, which will slow down your application and create future difficulties in debugging.

On to AngularJS:

Advantages of AngularJS:

  • Automatic DOM manipulation: You don’t need to add a single line of code to manipulate DOM.

  • Packed: For rapid client-side CRUD front-end app development, you don’t need anything other than Angular. With RESTful APIs, two-way data-binding, dependency management and more, you’re pretty much set.

  • Tenacious Testing: Refactoring, debugging, and general maintenance is piece of cake with quality code and on Angular, nothing less is allowed. The dependency injections, unit-testing tool Karma, and the enterprise-grade end-to-end testing beast Protractor ensure that you stay on the right track right from the beginning.

  • MVVW Principle: You get a solid, cleanly divided architectural structure to develop your application based on MVVW pattern. The $scope (viewmodel) references data, controller augments its behavior, and the view takes care of layout.

Disadvantages of AngularJS:

  • Steep learning curve: You need to apply yourself to learning this framework for a while before you get the hang of it. jQuery is easier to learn.

  • Novelty: The developer community is still testing the waters on AngularJS. Not as many developers have made the leap to AngularJS.

Conclusion:

As I said in the beginning, anything jQuery does, AngularJS can do better. If you can put in the time required to get a working knowledge, Angular is all you need for complex single-page web apps. If you need to get into specifics and do not mind the increased file size, a jQuery library with extensions can help develop well-performing simple round-trip apps.


Source: W3Lessons