As functional-programming-centric engineer myself, I don't use these particular constructs listed below.
I use a subset of the language to achieve all the goals that need to get accomplished, as performantly, robust, readable, and changeable as possible.
IIFE (Immediately Invoked Function Expressions)
"extends" keyword (inheritance)
getters and setters
let (unless it's a value type that I will explicitly reassign)
implicit type checks
implicit null/undefined checks
symbols (private keys)