Ionic bonds are between atoms with wide difference between their electronegativities. This allows one atom to hog up most of the electron density, so that when a compound with an ionic bond is put into appropriate solvent, it will form ions. Hence the name 'ionic bond'. NaCl + H2O = Na+ and Cl-.
Covalent bonds are between atoms with relatively similar electronegativities. They do not dissociate easily.
The line between ionic and covalent does not exist. It is a spectrum. Imagine a color spectrum between blue and yellow. When it is blue and when is it yellow? It's impossible to say exactly when. Bonds are referred to as having ionic character or covalent character. The stand out examples are used, like NaCl and methane to represent their respective teams.