JavaScript Fundamentals Every Angular Developer Must Know for Interviews (2026)
JavaScript Fundamentals Every Angular Developer Must Know for Interviews (2026)
If you're preparing for an Angular interview, especially for a Senior Angular Developer role, strong JavaScript fundamentals are essential. Many interviewers spend a significant portion of the interview testing JavaScript concepts because Angular is built on top of JavaScript and TypeScript.
In this article, we'll cover the most important JavaScript interview topics with practical examples.
1. var vs let vs const
These are used to declare variables, but they behave differently.
var name = "Manikandan";
let age = 35;
const country = "India";
| Feature | var | let | const |
|---|---|---|---|
| Scope | Function | Block | Block |
| Reassign | Yes | Yes | No |
| Hoisted | Yes | Yes | Yes |
Example
if (true) {
var a = 10;
let b = 20;
}
console.log(a); // 10
console.log(b); // Error
2. Hoisting
JavaScript moves declarations to the top during execution.
console.log(name);
var name = "Mani";
Output:
undefined
Internally, JavaScript treats it as:
var name;
console.log(name);
name = "Mani";
3. Closures
A closure allows a function to remember variables from its outer scope even after the outer function has completed execution.
function counter() {
let count = 0;
return function() {
count++;
return count;
};
}
const increment = counter();
console.log(increment()); // 1
console.log(increment()); // 2
Interview Definition
A closure is a function that retains access to variables from its lexical scope even when executed outside that scope.
4. Scope
JavaScript has three main scopes:
Global Scope
let name = "Mani";
Function Scope
function test() {
let age = 35;
}
Block Scope
if (true) {
let city = "Chennai";
}
5. Event Loop
JavaScript is single-threaded but can handle asynchronous operations using the Event Loop.
console.log("1");
setTimeout(() => {
console.log("2");
}, 0);
console.log("3");
Output:
1
3
2
Execution Flow:
Call Stack
↓
Web APIs
↓
Callback Queue
↓
Event Loop
6. == vs ===
Double Equals
5 == "5"
Output:
true
Performs type conversion.
Triple Equals
5 === "5"
Output:
false
Checks both value and type.
7. Promises
Promises represent future values of asynchronous operations.
const promise = new Promise((resolve, reject) => {
resolve("Success");
});
promise.then(result => {
console.log(result);
});
Promise States:
Pending
Fulfilled
Rejected
8. Async/Await
Modern and cleaner way to handle asynchronous operations.
Using Promise
getUsers()
.then(data => {
console.log(data);
});
Using Async/Await
async function loadUsers() {
const data = await getUsers();
console.log(data);
}
9. Callbacks
A callback is a function passed as an argument to another function.
function greet(callback) {
console.log("Hello");
callback();
}
greet(() => {
console.log("Mani");
});
Output:
Hello
Mani
10. Higher-Order Functions
A higher-order function accepts or returns another function.
function execute(callback) {
callback();
}
Examples:
map()
filter()
reduce()
11. map() vs forEach()
forEach()
arr.forEach(x => {
console.log(x);
});
Returns:
undefined
map()
const result = arr.map(x => x * 2);
Returns:
new array
12. filter() vs find()
filter()
Returns multiple matching items.
const result = users.filter(user => user.age > 18);
find()
Returns the first matching item.
const result = users.find(user => user.id === 1);
13. Understanding this
The value of this depends on how a function is called.
const person = {
name: "Mani",
greet() {
console.log(this.name);
}
};
person.greet();
Output:
Mani
14. Arrow Functions vs Regular Functions
Regular Function
function greet() {
}
Has its own this.
Arrow Function
const greet = () => {
};
Inherits this from its parent scope.
Angular developers commonly use arrow functions.
15. Destructuring
Object Destructuring
const user = {
name: "Mani",
age: 35
};
const { name, age } = user;
Array Destructuring
const arr = [1, 2, 3];
const [a, b] = arr;
16. Spread Operator
Used to copy or merge arrays and objects.
const arr1 = [1, 2];
const arr2 = [...arr1, 3];
Result:
[1, 2, 3]
Object Example:
const user = {
...oldUser,
name: "Kumar"
};
17. Rest Operator
Collects multiple values into a single array.
function sum(...numbers) {
console.log(numbers);
}
sum(1, 2, 3, 4);
Output:
[1, 2, 3, 4]
18. Shallow Copy vs Deep Copy
Shallow Copy
const copy = { ...user };
Nested objects remain shared.
Deep Copy
const copy = structuredClone(user);
Creates a completely independent copy.
19. Debouncing
Useful for search boxes.
Without Debouncing:
m → API Call
ma → API Call
man → API Call
mani → API Call
With Debouncing:
debounceTime(500)
Only one API call is executed after the user stops typing.
20. Throttling
Limits function execution to fixed intervals.
Example:
Scroll Event
Instead of executing hundreds of times per second, throttle executes at a controlled rate.
21. Memory Leaks
Memory leaks occur when resources are not released properly.
Example:
setInterval(() => {
console.log("Running");
}, 1000);
Solution:
clearInterval(intervalId);
Angular Example:
ngOnDestroy() {
this.subscription.unsubscribe();
}
22. null vs undefined
undefined
let value;
Output:
undefined
null
let value = null;
Represents an intentional empty value.
23. Prototypes
JavaScript uses prototypes for inheritance.
function Person(name) {
this.name = name;
}
Person.prototype.greet = function() {
console.log("Hello");
};
All Person objects share the same greet() method.
24. Currying
Transforms a function with multiple parameters into a series of functions.
function sum(a) {
return function(b) {
return a + b;
};
}
console.log(sum(10)(20));
Output:
30
Most Important JavaScript Topics for Angular Interviews
Before attending your next Angular interview, make sure you understand:
✅ var, let, const
✅ Scope
✅ Hoisting
✅ Closures
✅ Event Loop
✅ Promises
✅ Async/Await
✅ Callbacks
✅ this Keyword
✅ Arrow Functions
✅ map/filter/reduce
✅ Destructuring
✅ Spread & Rest Operators
✅ Debounce & Throttle
✅ Memory Leaks
✅ Prototypes
✅ Deep Copy vs Shallow Copy
✅ == vs ===
✅ Event Bubbling & Capturing
✅ Microtasks & Macrotasks
Mastering these concepts will significantly improve your confidence and performance in Angular, JavaScript, and Frontend interviews.
Happy Learning and Best of Luck with Your Interviews! 🚀
Comments
Post a Comment