https://brianflove.com/2014-09-02/whats-the-double-exclamation-mark-for-in-javascript/