elements of programming interviews in javascript