Directives are markers on DOM elements that tell the AngularJS compiler to attach certain behaviors to the element or even replace the element. There are predefined directives like ng-app and ng-model as well as custom directives that can be created. Directives add behaviors, bind data to scopes, and replace or extend HTML elements. Common directives include ng-click, ng-disabled, ng-show, and ng-hide, which perform operations on clicks, disable elements conditionally, and show/hide elements based on conditions.