AngularJS is a JavaScript framework that extends HTML with directives to bind data to the DOM and make web pages more interactive. It uses MVC architecture with controllers controlling views and models, and services providing reusable code. Templates combine models, controllers and directives to render dynamic views.