- extend HTML's syntax to build up components
- synchronize data from UI (view) through data bindings
- structure applications better and easier to test
- teaches the browser how to do dependency injection and inversion of control
- helps with server-side communication, asynchronous callbacks with promises and deferred objects, and deep linking with hash-based urls ...
To take it in conclusion, it helps you to do almost everything.
Angular has developed with two versions, 1.x or 2. As they are around totally different, I have noted them respectively.
- AngularJS (1.x)
- Angular (2)