How does this
 work in JavaScript. How prototypal inheritance
works in JavaScript What's the difference between a variable that is:Â null
, undefined
 or undeclared? ⏫⏬ Describe event bubbling
& event capturing
. On the difference between an attribute
and a property
? 🎒What is a closure, and how/why would you use one? Explain event delegation
. Why is it useful? Give an example of how you would use it What language constructions do you use for iterating over object properties and array items? Can you describe the main difference between the Array.forEach()
 loop and Array.map()
 methods and why you would pick one versus the other? What's a typical use case for anonymous functions? What's the difference between host objects and native objects? Explain Function.prototype.bind
. Explain the differences on the usage of foo
 between function foo() {}
 and var foo = function() {}
Explain the difference between:Â function Person(){}
, var person = Person()
, and var person = new Person()
? Can you explain what Function.call
 and Function.apply
 do? What's the notable difference between the two? What's the difference between feature detection, feature inference, and using the UA string? Why is extending built-in JavaScript objects not a good idea? What is the difference between ==
 and ===
? Explain the same-origin policy with regards to JavaScript. What is the difference between Error
and Exception
? Why is it called a Ternary operator, what does the word "Ternary" indicate? What is strict mode? What are some of the advantages/disadvantages of using it? What are some of the advantages/disadvantages of writing JavaScript code in a language that compiles to JavaScript? What tools and techniques do you use debugging JavaScript code? Explain the difference between mutable and immutable objects. Explain the difference between synchronous and asynchronous functions. What are the differences between variables created using let
, var
 or const
? What are the differences between ES6 class and ES5 function constructors? Can you offer a use case for the new arrow =>
 function syntax? How does this new syntax differ from other functions? What advantage is there for using the arrow syntax for a method in a constructor? What is the definition of a higher-order function? Can you give an example for destructuring an object or an array? Can you give an example of generating a string with ES6 Template Literals? Can you give an example of a curry function and why this syntax offers an advantage? What are the benefits of using spread syntax
 and how is it different from rest syntax
? How can you share code between files? Why you might want to create static class members? What is the difference between while
 and do-while
 loops in JavaScript?