Avoid webshit. Really.
Welcome to Node.js v12.4.0. Type ".help" for more information. > 0 == "0" true > 0 ==  true > "0" ==  false > 0 == "" true > "" ==  true > true+true === 2 true > true === 1 false > ['1', '7', '11'].map(parseInt) [ 1, NaN, 3 ]
Avoid dynamically-typed languages at all costs.
Use tooling if you are
do not do plumbing yourself - delegate it
but do understand the principles and important metrics
so you could control the process and evaluate the results
The first principle is quite simple - recursively simplify and refine until there is nothing more to remove or refactor - the base case (a local optimum) is reached. This is what the best poets do.
see also PHP