Core JS mentors interview #1
- What is the difference between Git and GitHub?
- Describe the Git flow branching model.
- What is the difference between git pull and git fetch, git reset and git revert, git merge and git rebase?
- What are the key differences between primitive data types and Object data types in JavaScript?
- How does the
typeof operator work in JavaScript, and when would you use it?
- What are the differences between var, let, and const in JavaScript? Can you explain what hoisting and TDZ are?
- How do you use conditional statements in JavaScript to make decisions in your code?
- How does destructuring work in JavaScript, and give examples of its use with arrays and objects?
- What are some ways to create arrays in JavaScript? What array methods that modify the original array in JavaScript?
- Explain how you would use array operations such as sort, filter, find, map, and reduce in JavaScript.
- What are static methods in JavaScript? Provide an example.
- Can you explain automatic data type conversion in JavaScript?
- What is the difference between
Object.create() and new keyword for creating objects?
- What are property descriptors in JavaScript objects and how can you manipulate them? How do getter and setter methods work in JavaScript objects?
- How can you clone an object in JavaScript? How can you prevent modifications to an object in JavaScript?
- Explain the difference between function declarations, function expressions, and arrow functions.
- How do default parameters work in JavaScript functions and why are they useful? What is a rest operator and how can it be used in functions? Rest operator vs
arguments.
- How does the
this keyword work in different types of functions? What are the call, apply, and bind methods? Provide examples of how and when you would use each.
- How does
use strict mode affect this behavior in functions?
- Explain the concept of closure in JavaScript. Explain functional patterns in JavaScript: IIFE (Immediately Invoked Function Expressions), callback, memoization, currying, chaining, higher-order function, recursion.