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.
For example, in JavaScript, ideally, I do not use...
prototype
IIFE (Immediately Invoked Function Expressions)
bind
call
"this" keyword
"function" keyword
"class" keyword
"extends" keyword (inheritance)
interface classes
abstract classes
getters and setters
overloading
overriding
virtual methods
optional parameters
asynchronous callbacks
let (unless it's a value type that I will explicitly reassign)
implicit casts
implicit type checks
implicit null/undefined checks
single quotes
"require" keyword
polymorphic functions
recursion
generators (function*)
symbols (private keys)