scope, closure, object oriented, and asynchronous programming in JavaScript.