Functional programming in JavaScript emphasizes concepts like pure functions, immutable data, and recursion in place of loops. Techniques such as currying and function composition enhance code flexibility and readability, despite JavaScript not being a purely functional language. Libraries like lodash and Ramda further support functional programming practices, while purely functional languages like Haskell and Elm offer richer features.