Top 20 JavaScript Interview Questions Explained with Answers
![]() |
| Top 20 JavaScript Interview Questions Explained with Answers |
Introduction
JavaScript is a powerful and versatile programming language that is widely used for web development, backend development, and even mobile app development. During interviews, many JavaScript questions are aimed at testing your problem-solving abilities and knowledge of core concepts. In this article, I will explain 20 commonly asked JavaScript coding problems along with how to confidently approach and answer them in interviews.
By the end of this, you'll have a clear understanding of how to tackle these problems and impress your interviewer!
1. Program to find the longest word in a given sentence
To solve this problem, split the sentence into words using split() and find the word with the maximum length using a loop or the reduce() method.
Approach:
function findLongestWord(sentence) {
const words = sentence.split(' ');
let longestWord = '';
for (let word of words) {
if (word.length > longestWord.length) {
longestWord = word;
}
}
return longestWord;
}
Interview Tip: Explain how splitting and iterating over the array help find the longest word efficiently.
2. Check whether a string is a palindrome
A palindrome reads the same forward and backward. Reverse the string and check if it matches the original.
Approach:
function isPalindrome(str) {
const reversed = str.split('').reverse().join('');
return str === reversed;
}
Interview Tip: Mention edge cases, like ignoring spaces and capitalization.
3. Remove duplicates from an array
Use a Set to automatically filter unique values or loop through the array to remove duplicates.
Approach:
function removeDuplicates(arr) {
return [...new Set(arr)];
}
Interview Tip: Highlight the efficiency of Set for unique value extraction.
4. Reverse a string without using built-in methods
Manually iterate through the string from end to start and build the reversed version.
Approach:
function reverseString(str) {
let reversed = '';
for (let i = str.length - 1; i >= 0; i--) {
reversed += str[i];
}
return reversed;
}
5. Find the max count of consecutive 1’s in an array
Keep a counter and track the maximum streak of 1s while iterating through the array.
Approach:
function maxConsecutiveOnes(arr) {
let maxCount = 0, count = 0;
for (let num of arr) {
count = (num === 1) ? count + 1 : 0;
maxCount = Math.max(maxCount, count);
}
return maxCount;
}
6. Find the factorial of a given number
Use recursion or a loop to calculate the factorial.
Approach:
function factorial(n) {
if (n === 0 || n === 1) return 1;
return n * factorial(n - 1);
}
7. Merge and sort two arrays
Combine both arrays using concat() and sort using sort().
Approach:
function mergeAndSort(arr1, arr2) {
return [...arr1, ...arr2].sort((a, b) => a - b);
}
8. Check if one array is the squared version of another
Use frequency mapping to check the counts of elements.
Approach:
function hasCorrespondingSquares(arr1, arr2) {
let count1 = {}, count2 = {};
for (let num of arr1) count1[num] = (count1[num] || 0) + 1;
for (let num of arr2) count2[num] = (count2[num] || 0) + 1;
for (let key in count1) {
if (!count2[key ** 2] || count2[key ** 2] !== count1[key]) {
return false;
}
}
return true;
}
9. Check if two strings are anagrams
Sort both strings and compare.
Approach:
function areAnagrams(str1, str2) {
return str1.split('').sort().join('') === str2.split('').sort().join('');
}
10. Get unique objects from an array
Use JSON.stringify() to compare objects.
Approach:
function uniqueObjects(arr) {
const unique = [];
const seen = new Set();
for (let obj of arr) {
const key = JSON.stringify(obj);
if (!seen.has(key)) {
seen.add(key);
unique.push(obj);
}
}
return unique;
}
11–20. Additional Problems
- Find the maximum number in an array: Use
Math.max(...arr). - Filter even numbers: Use
filter()to extract even numbers. - Check if a number is prime: Loop from 2 to
n-1to check divisibility. - Find the largest in a nested array: Use recursion to flatten and then find the max.
- Fibonacci sequence: Generate numbers iteratively or recursively.
- Count character occurrences: Use an object to map characters to their counts.
- Sort numbers ascending/descending: Use
sort()with appropriate comparator. - Reverse words in a sentence: Split, reverse the array, and join.
- Flatten a nested array: Use recursion or
flat()with depth.
Conclusion
JavaScript interviews test not just your coding skills but also your ability to explain and optimize solutions. Practice these problems to build confidence and become better prepared for your next technical interview. Remember, the key is not just solving the problem but clearly communicating your thought process.
👉 Join our community: Telegram Group
Thank you for reading! I hope this article helps you ace your JavaScript interviews. 😊

