InterviewQs

Top 25 JavaScript Interview Coding Questions

Carefully curated, high-frequency JavaScript coding questions used in real-world frontend and full-stack technical interviews.

1.Reverse a string

function reverseString(str){
  return str.split('').reverse().join('');
}
console.log(reverseString('hello'));

2.Check prime number

function isPrime(n){
  if(n <= 1) return false;
  for(let i=2;i<=Math.sqrt(n);i++)
    if(n % i === 0) return false;
  return true;
}
console.log(isPrime(7));

3.Factorial using recursion

function factorial(n){
  if(n===0) return 1;
  return n * factorial(n-1);
}
console.log(factorial(5));

4.Check palindrome string

function isPalindrome(str){
  const s = str.toLowerCase().replace(/[^a-z0-9]/g,'');
  return s === s.split('').reverse().join('');
}
console.log(isPalindrome('madam'));

5.Remove duplicates from array

function removeDuplicates(arr){
  return [...new Set(arr)];
}
console.log(removeDuplicates([1,2,2,3]));

6.Find maximum element

const arr = [3,8,1,9,4];
console.log(Math.max(...arr));

7.Second largest element

const arr = [10,20,30,40];
const s = [...new Set(arr)].sort((a,b)=>b-a);
console.log(s[1]);

8.Fibonacci series

let a=0,b=1;
for(let i=0;i<10;i++){
  console.log(a);
  [a,b] = [b,a+b];
}

9.Bubble sort

let arr = [5,1,4,2];
for(let i=0;iarr[j+1])
      [arr[j],arr[j+1]]=[arr[j+1],arr[j]];
  }
}
console.log(arr);

10.Binary search

function binarySearch(arr,x){
  let l=0,r=arr.length-1;
  while(l<=r){
    let m=Math.floor((l+r)/2);
    if(arr[m]===x) return 'Found';
    if(arr[m]

11.Sum of digits

let n=123,sum=0;
while(n){
  sum+=n%10;
  n=Math.floor(n/10);
}
console.log(sum);

12.Anagram check

function isAnagram(a,b){
  return a.split('').sort().join('') ===
         b.split('').sort().join('');
}
console.log(isAnagram('listen','silent'));

13.Count character frequency

function countChars(str){
  return [...str].reduce((a,c)=>{
    a[c]=(a[c]||0)+1; return a;
  },{});
}
console.log(countChars('hello'));

14.Flatten nested array

const arr=[1,[2,[3,[4]]]];
console.log(arr.flat(Infinity));

15.Find missing number

const arr=[1,2,4,5],n=5;
console.log(n*(n+1)/2 - arr.reduce((a,b)=>a+b,0));

16.Merge two sorted arrays

function merge(a,b){
  let i=0,j=0,res=[];
  while(i

17.Balanced parentheses

function balanced(s){
  let c=0;
  for(let x of s){
    if(x==='(') c++;
    else c--;
    if(c<0) return false;
  }
  return c===0;
}
console.log(balanced('(())'));

18.Debounce function

function debounce(fn,d){
  let t;
  return (...a)=>{
    clearTimeout(t);
    t=setTimeout(()=>fn(...a),d);
  };
}

19.Throttle function

function throttle(fn,limit){
  let wait=false;
  return function(){
    if(!wait){
      fn.apply(this,arguments);
      wait=true;
      setTimeout(()=>wait=false,limit);
    }
  }
}

20.Deep clone object

const obj={a:1,b:{c:2}};
const clone=JSON.parse(JSON.stringify(obj));
console.log(clone);

21.Find intersection of arrays

function intersect(a,b){
  return a.filter(x=>b.includes(x));
}
console.log(intersect([1,2,3],[2,3,4]));

22.Longest word in sentence

function longestWord(s){
  return s.split(' ').reduce((a,b)=>b.length>a.length?b:a,'');
}
console.log(longestWord('quick brown fox jumps'));

23.Random number in range

function random(min,max){
  return Math.floor(Math.random()*(max-min+1))+min;
}
console.log(random(1,10));

24.Garbage collection concept

// JavaScript automatically manages memory
// Unused objects are garbage collected
InterviewQs – Professional Footer