JavaScript functions allow code to be reused and run when invoked. Functions are defined using the function keyword and name and can take parameters. To call a function, its name is written and the code inside will execute. Functions can return values and be invoked from events, code, or automatically. They allow code reuse and running code with different arguments to produce different results.