- What are the data types Javascript supports?
- What do the break and the continue statements do?
- What's the difference between var, const, and let?
- What's the difference between null, undefined, and undeclared variables in JavaScript, and how can you check for these states?
- What is the difference between '==' and '===' operators in JavaScript?
- What is debounce in JavaScript and how can you implement it?
- What is JSON and how is it used in JavaScript?
- What is variable scope in JavaScript and what are the different types of scope?
- What are the key differences between arrow functions and regular functions in JavaScript?
- What is a hashtable?
- What are some examples of templating libraries in JavaScript and how are they used?
- What are the main programming paradigms supported by JavaScript?
- How can you perform file operations in JavaScript, both in the browser and on the server?
- What is a ternary operator in JavaScript and how is it used?
- What is a reference in JavaScript and how does it differ from primitive values?
- What are falsy values in JavaScript and how are they used in conditional statements?
- What are some popular JavaScript unit testing frameworks and how are they used?
- What is a barrel in ES6 and how is it used in module organization?
- How does JavaScript handle parameter passing for different data types?
- What is a linter in JavaScript development and what are its benefits?
- What is a memory leak and how can it be prevented?
- What is a property descriptor and what properties does it include?
- What are AMD and CommonJS in module systems?
- What is the same-origin policy and why is it important?
- Why is it considered bad practice to use the global scope extensively?
- What is the difference between identity (===) and equality (==) operators?
- How can you simulate private variables?
- What are the main asynchronous design patterns?
- What are Firebug and Firefox Developer Tools used for in web development?
- What is the difference between a shim and a polyfill?
- What are $$ methods and why are they considered bad practice?
- What are WebSockets and what are they used for?
- What is Babel and why is it used?
- What is a linked list and how does it differ from an array?
- What is recursion and when is it useful?
- What is the difference between .forEach() and .map() methods?
- What is an Immediately Invoked Function Expression (IIFE) and why is it used?
- What are typical use cases for anonymous functions?
- What are the differences between feature detection, feature inference, and using the UA string?
- What's the difference between function Person(){}, var person = Person(), and var person = new Person()?
- What's the difference between a function declaration and a function expression?
- What is the difference between 'this' in an arrow function and a regular function?
- What is the difference between ES6 classes and ES5 function constructors?
- How would you compare two objects?
- How does 'this' work?
- How does prototypal inheritance work?
- How is prototypal inheritance different from classical inheritance?
- What's the difference between host objects and native objects?
- What's the difference between .call(), .apply(), and .bind()?
- How to change the context of 'this' in a function?
- How to clone an object?
- What's the difference between a class and an object?
- What is a symbol?
- Why might you want to create static class members?
- What are the pros and cons of extending built-in JavaScript objects?
- What are predefined objects?
- What are getters and setters?
- What is an abstract class?
- What do we mean by Object Oriented Programming (OOP)?
- What is an object?
- What is a class?
- What do the Object.create() and Object.assign() methods do?
- What is a garbage collector?
- What is the difference between mutable and immutable objects?
- What is interpolation/template literals?
- Can you provide examples, pros, and cons of applying immutability?
- What is Map()?
- What is Set()?
- How to iterate over Maps and Sets?
- When do we use Map and Set?
- What is DOM?
- What is event propagation and delegation?
- How to control mouse right-click?
- How to make a checkbox ticked when clicking on a label?
- What is the difference between event bubbling and event capturing?
- What is the difference between node.nextSibling and ChildNode.nextElementSibling?
- What is a NodeList?
- How to rotate an element 90 degrees?
- When would you use document.write()?
- What is the difference between load event and DOMContentLoaded event?
- When do you use load event?
- What is the difference between window and document?
- What are 4 ways to validate a form?
- How to submit a form?
- Where to hold form data in React and JavaScript?
- Does inputting data mutate component state?
- What is AJAX? What are its advantages and disadvantages?
- Is JSONP considered AJAX?
- What HTTP request methods do you know?
- What are some examples of HTTP response codes?
- What is Fetch API?
- Can you describe the structure of an AJAX response, including the status code, headers, and body?
- What is the difference between synchronous and asynchronous code?
- Can you provide examples of asynchronous functions, and where do they come from?
- What are the call stack and the event loop?
- What is a callback function?
- Why do we use callback functions?
- What is callback hell?
- What is a promise?
- What are then(), catch(), and finally() methods in promises?
- What is promise polyfill?
- What is Promise.all?
- What is the purpose of design patterns in programming?
- Can you provide examples of design patterns and their benefits?
- What is functional programming (FP)?
- What is a higher-order function?
- What does it mean that JavaScript functions are first-class objects?
- What is a pure function?
- What is composing?
- What is the definition and purpose of closures?
- What are the meanings of Map, Filter, Reject?
- What does it mean when a function is idempotent?
- What is currying?
- What are the differences between cookies, sessionStorage, and localStorage?
- What types of loops are available in JavaScript?
- How to iterate over object properties?
- How to iterate over collections?
- How to iterate over a NodeList?
- How to iterate over arrays?
- What are generators?
- What is destructuring?
- How to share code between files?
- How do you organize your code?
- What are modules?
- What are some examples of ways to refactor code?
- What is hoisting?
- What is strict mode?
- What is the difference between spread syntax and rest syntax?
Estimated time: 45 hours