A button is a simple input component which responds to being pushed by a user.
The purpose of a button is to change the state of a connection when it is pushed. The connection change may be momentary (push-to-make or push-to-break), or it may be toggled on/off by consecutive pushes.
A microcontroller can monitor the connection, allowing the button to act as a simple input mechanism.
Use this tag when asking about using button components in Arduino projects. This can include issues such as connections and de-bouncing.