AngularJS is a JavaScript framework that extends HTML attributes with directives to bind data to the page with expressions. It uses MVC architecture with two-way data binding and dependency injection. Core features include directives like ng-app, ng-model, and ng-bind that initialize applications and bind data to HTML. Controllers act as data providers and models define application structure. Services provide reusable utilities, and filters change expression display. AngularJS allows building single page applications with data-driven components.