A knot invariant is map from isotopy equivalence classes of knots to any kind of structure you could imagine. These are helpful because it is often much easier to check that the structures one maps to (numbers, groups, etc.) are different than it is to check that knots are different. To define a knot invariant, it suffices to define its value on knot diagrams and check that this value is preserved under the Reidemeister moves (possibly with the exception of the first Reidemeister move, in the case of an invariant of framed knots).
Many of these extend to link invariants or have variants that depend on the knot being oriented.
Satoshi Nawata, Alexei Oblomkov, Lectures on knot homology (arXiv:1510.01795)