State Machines
A state machine is an abstract representation of a system's state at a given point in time. A transition is the change from one state to another given a set of inputs.
There are two types of state machines: Finite, and infinite. A finite state machine (FSM) has a finite number of states and actions whereas an infinite state machine has an infinite number of states and/or actions. Generally, the term "state machine" refers to a finite state machine.
State machines can be depicted formally in a visual format, which makes them useful for describing complex systems.
State Machine Resources
Deeper Knowledge on State Machines

Statecharts
A visual formalism for complex systems

XState JavaScript Library
A library to create state machines and state charts written in JavaScript
Broader Topics Related to State Machines

Computer Science
The study of algorithms, data structures, information, and computation