A function expression is a way to define a function in JavaScript where the function can be assigned to a variable, typically allowing for more flexible and modular code structures. Unlike function declarations, function expressions can be anonymous and are not hoisted, meaning they are only available after their definition in the code.