AngularJS is a client-side JavaScript framework that allows developers to create single page applications. It provides two-way data binding, MVC architecture, templates and custom directives to help build testable web apps that can scale. Some key features include data binding, controllers, expressions to dynamically display data, modules to organize code, and services to handle back-end communication. Overall, AngularJS streamlines web development by handling many common tasks like DOM manipulation, data binding and communication with backend services.