A register functions as a more complete unit of memory within a circuit, grouping together data with a similar meaning in most cases, or just a more compact way of storing a bunch of bits. Most registers are made out of D flip flops due to the lower pin count needed for signals (JK would need much larger IC's because of the need for more control pins space).
There are four main kinds of registers, categorized by the way in which data is put in and taken out.
Parallel In, Parallel Out Registers
This kind is the simplest of registers. A parallel in/ parallel out is just a collection of flip flops that share a common clock signal but have independent data signals and outputs.
Their main application is storing data or state information (represented in binary digits) for use in later steps in sequential circuits.
Serial In, Parallel out Registers
Serial in/ parallel out registers get their input from a single data line. The output of the flip flop is used as one of the outputs, as well as connecting it to the data line of the next flip flop. What this accomplishes is that for every clock signal, the bits stored move one place and a new bit is captured at the first flip flop; the last flip flop is used just as another output, so its data is rewritten after every clock pulse.
This type of registers are used as buffers in digital data lines, where data is sent using only one wire but each bit is needed separately for further use.
Parallel in, Serial Out Register
Parallel in/ serial out registers have special control circuitry (sometimes a simple multiplexor suffices) that can select whether to use an external set of bits or the previous flip flop's output as input.
This is so that there's a possibility to get an external set of bits all at one (in parallel), and send them along one by one. Since each clock pulse the data moves to the next flip flop, the last can be used as the register's serial output, sending the data it stores one bit at a time.
In contrast to the receiving and "semimultiplexing" action of the serial in/ parallel out, the parallel in/ serial out combines number of data lines into a single one, most likely for transmitting over a digital line.
Serial in, Serial out Register
Kind of a special purpose register. This is always wired so that the first flip flop gets external data, and all internal flip flop's outputs are connected to the input of the next, the last one being used as output.
This register's main purpose is to delay the transmission of data in a digital data line.