What is AngularJS?

Angular.JS is a JavaScript framework created by Google. It is most commonly used in web and mobile app development. AngularJS is a structural framework for dynamic web applications.

Learn one way to build applications with Angular and reuse code and abilities to build applications for any deployment target. For web, mobile web, native mobile and native desktop.
SPEED & PERFORMANCE: Achieve the maximum speed possible on the Web Platform, and take it further, via Web Workers and server-side rendering.
Build features quickly with simple, declarative templates. Extend the template language with your own components and use a wide array of existing components. Get immediate Angular-specific help and feedback with nearly every IDE and editor. All this comes together so you can focus on building amazing apps rather than trying to make the code work.

Advantages of AngularJS:
Capability to create Single Page Application in a very clean and maintainable way.
AngularJS provides data binding capability to HTML thus giving user a rich and responsive experience.
Unit testable.
Dependency injection and make use of separation of concerns.
Reusable components.
Less code and get more functionality.
Views are pure html pages, and controllers written in JavaScript do the business processing.

Latest version :
5.0.0 LTS (Release Date : 2017-10-23)
Major differences between Angular 1 vs Angular 2 vs Angular 4 :
Angular 2.0 shows a substantial change in the structure as compared to version 1.0. The architecture of Angular v1 is based on MVC whereas the architecture of Angular v2 is based on service/controller. There is very less possibility to upgrade the Angular v1 to v2, mainly developers have to rewrite the entire application code.
The upgrade of the version from 2.0 to 4.0 has reduced it’s bundled file size by 60%. The code generated is reduced and has accelerated the application development. Here the developed code can be used for prod mode and debug.
JavaScript and TypeScript:
Angular v1.0 use JavaScript to build the application while Angular v2.0 uses the Typescript to write the application. TypeScript is a superset of JavaScript which helps to build more robust and structured code. Dart can be used by developers along with TypeScript in version 2.0.
Angular v4.0 is compatible with newer versions TypeScript 2.1 and TypeScript 2.2. This helps with better type checking and also enhanced IDE features for Visual Studio Code.
Mobile Support:
Angular 2.0 has made it possible to accomplish the native applications for a mobile platform like React Native. Angular 2.0 gives us the two layers: application layer and the rendering layer. As need, any view can be rendered in runtime for the required component.
Component-based UI:
The controller concept which was present in Angular v1.0 is eliminated in Angular v2.0. Angular v2.0 has changed to component based UI. This helps a developer to divide the applications in terms of components with desired features and enable to call required UI. These have helped to improve the flexibility and reusability as compared to Angular v1.0