Are all ionic compounds salts?
Interestingly, IUPAC states that a "salt" is "a chemical compound consisting of an assembly of cations and anions". Under this definition, all ionic compounds are salts, and all salts are ionic compounds. 

Therefore, something like sodium hydroxide ($\ce{Na+OH-}$, definitely an ionic compound) could actually be correctly called a salt. This clashes with the commonly taught high-school level definition of a salt ("the product of an acid-base reaction"), unless you consider very general definitions of acids and bases such as the Usanovich definition, whereby sodium metal $\ce{Na^0}$ is an electron donor (and therefore a base) and water is an electron acceptor (and therefore an acid).

That said, the high-school definition is too simplistic. It is common for compounds to be an acid, a base and a salt all at the same time; consider for example sodium bicarbonate ($\ce{Na+HCO3-}$). It is made of cations and anions, and therefore is definitely a salt. Furthermore, it can act as both a Brønsted–Lowry acid ($\ce{NaHCO3 + OH- -&gt; H2O + Na+ + CO3^2-}$) and as a Brønsted–Lowry base ($\ce{NaHCO3 + H+ -&gt; Na+ + H2CO3}$). Another amusing example is hydrazinium sulfate, a salt, acid and base, where both the cation and anion are also both acids and bases!