Function expressions vs function declaration

I would like to understand the advantage of using a Function Expression over simply declaring a function

For example, the two code blocks produce the same outcome

const plantNeedsWater = function(day){
  if (day === 'Wednesday')
  return true
  else 
  return false
};
plantNeedsWater('Tuesday');
console.log(plantNeedsWater('Tuesday'))
function plantNeedsWater(day){
   if (day === 'Wednesday')
  return true
  else 
  return false
};
plantNeedsWater('Tuesday');
console.log(plantNeedsWater('Tuesday'))

I know that function expressions aren’t hoisted, but I would like to understand what the advantages are of using a function expression are over simply declaring a function, so I can understand the concept better

Many thanks

When you use a function delcaration, you can later redefine it (e.g. plantNeedsWater = 'this was a function but now it is a string';, but if you make a function expression using the const keyword, you can’t
However, if you use the let keyword to define a function expression it will later let you redefine it

See a workspace I made as an example:
https://www.codecademy.com/workspaces/6282588b4f971d681593f820