AngularJS is a JavaScript framework created by Google to build web applications. It uses templates and expressions to bind data to HTML elements. Key features include data binding, controllers and scopes to manage models and views, filters to transform data, services for reusable logic, and directives to teach HTML new tricks like ng-click. Directives are placed in HTML elements and attributes to add functionality.