AngularJS is a framework for building client-side web applications. It allows you to extend HTML vocabulary with custom attributes and elements, and uses two-way data binding between models and views. AngularJS provides services, directives, modules and dependency injection to help organize application code and logic. Testing is also an important part of the AngularJS workflow, as it helps ensure code quality.