… I was convinced that we needed to build-in a programming language, but the developers … were very much opposed. It had to remain completely declarative. Maybe, but the net result is that the programming-vacuum filled itself with the most horrible kluge in the history of computing: JavaScript. — R. Cailliau Wikinews interviews WWW co-inventor Robert Cailliau, 2007
  1. JavaScript — Explore this documentation; you’ll find references to the answers to these questions on the main MDN JavaScript page or in the “JavaScript Guide”.

    1. Explain the following concepts:
      1. first-class functions
      2. anonymous functions
      3. prototype-based inheritance/polymorphism
      4. closures
      5. strict mode
      6. this keyword (see Guide→Working with Objects→Using this for object references)
      7. promises (see Guide→Using Promises)
    2. Compare and contrast the “sameness” operators: ==, ===
    3. Compare and contrast JavaScript and Java.
    4. Compare and contrast ES5 and ES6 (aka. ES2015).

    See the JavaScript Guide for explanations and the JavaScript Reference for details. Be careful to note the ES5 and ES6 coverage status for each feature.

  2. The World’s Most Misunderstood Programming Language

    1. Why is JavaScript considered such a “kluge”?
    2. Is this reputation justified?

    For an interesting follow-up read, see The World's Most Misunderstood Programming Language Has Become the World's Most Popular Programming Language