https://javascript.plainenglish.io/20-simple-but-useful-javascript-coding-techniques-that-you-should-use-23f33bd45325