Acing the JavaScript Interview: top questions explained