AngularJS uses the Model-View-Whatever (MV*) design pattern which, similarly to Model-View-Controller (MVC), divides program logic into three interconnected elements. The Model represents data, the View is what the user sees. The Whatever, or Controller in MVC, is the link between the Model and the View. The Whatever in MV* means that the developer can create any kind of link between the Model and the View. AngularJS’s most notable feature is two-way data binding. This means that if something changes in the Model, it is immediately reflected in the View, and the other way around. This enables developers to write less code and the user experience is richer and more responsive.