AngularJS is a JavaScript framework for building single-page web applications. It augments HTML to provide MVC capabilities and allows developers to write dynamic web apps without having to manipulate the DOM directly. AngularJS uses scopes to bind models and views, and filters to format data for display. Directives extend HTML and allow developers to create reusable components. Modules are used to organize code and keep the global namespace clean.