Frequency Response Notation
In nearly every field of mathematics or science you will find multiple notations that mean the same thing, sometimes from slightly different angles. This is one of those cases where there are multiple ways of notating the same concept.

For discrete-time systems, there really isn't any difference in meaning between the definitions that you gave, especially between the first two ($H(e^{j\omega})$ and $H(\omega)$). The first is just a bit more explicit that the function $H$ refers to the (complex-valued) amplitude of the system's output when its input is a complex exponential with angular frequency $\omega$. This is a bit verbose, so often you'll see it trimmed to the latter representation. $H(f)$ is not typically used for discrete-time systems, as $f$ refers to a continuous-time frequency in Hertz; without a specified sampling frequency, there isn't a well-defined mapping between $f$ and $\omega$, the more natural frequency concept for discrete-time systems.

$H(f)$ is typically only specified for continuous-time systems, where it competes with the alternate notation $H(\omega$). In any mathematical expression where you use one of them, you can massage the expression to use the other, sometimes involving factors of $2\pi$ that need to be inserted in various places to make the math work out. As a general rule, in my experience, the $\omega$ form is used more commonly in control systems contexts, whereas communications engineers seem to prefer the $f$ form. However, as I said, there's really no functional difference between the two.