AngularJs
AngularJS lets you write client-side web applications as if you had a smarter browser. It lets use good old HTML (or HAML, Jade and friends!) as your template language and lets you extend HTMLâs syntax to express your applicationâs components clearly and succinctly. It automatically synchronizes data from your UI (view) with your JavaScript objects (model) through 2-way data binding. To help you structure your application better and make it easy to test AngularJS teaches the browser how to do dependency injection and inversion of control. Oh yeah and it also helps with server-side communication, taming async callbacks with promises and deferreds; and make client-side navigation and deeplinking with hashbang urls or HTML5 pushState a piece of cake.