The function keyword is read by the compiler upon first reading. All functions are then taken into memory as being defined. This all happens before the code is run.
Using the const red = () => ... syntax, does not define a function. This is a variable named red with a value of some-anonymous-function.
It is important to realise, whilst you can use this new syntax very similarly to how you would a function, the introduction of this syntax was not to replace explicit functions. Arrow functions are purely useful for their short-handedness. They are basically JavaScript’s lambda functions.
So, if you want to write a globally-scoped function, and keep your script neat by placing it at the end, use the function keyword.
If you want to save some space (normally, when writing callbacks), use the arrow function syntax.