58 JavaScript Interview Questions for Frontend Developer

JavaScript Questions

  • Explain event delegation.
  • Explain how this works in JavaScript.
    • Can you give an example of one of the ways that working with this has changed in ES6?
  • Explain how prototypal inheritance works.
  • What’s the difference between a variable that is: null, undefined or undeclared?
    • How would you go about checking for any of these states?
  • What is a closure, and how/why would you use one?
  • What language constructions do you use for iterating over object properties and array items?
  • Can you describe the main difference between the Array.forEach() loop and Array.map() methods and why you would pick one versus the other?
  • What's a typical use case for anonymous functions?
  • What's the difference between host objects and native objects?
  • Explain the difference between: function Person(){}, var person = Person(), and var person = new Person()?
  • Explain the differences on the usage of foo between function foo() {} and var foo = function() {}
  • Can you explain what Function.call and Function.apply do? What's the notable difference between the two?
  • Explain Function.prototype.bind.
  • What’s the difference between feature detection, feature inference, and using the UA string?
  • Explain "hoisting".
  • Describe event bubbling.
  • Describe event capturing.
  • What's the difference between an "attribute" and a "property"?
  • What are the pros and cons of extending built-in JavaScript objects?
  • What is the difference between == and ===?
  • Explain the same-origin policy with regards to JavaScript.
  • Why is it called a Ternary operator, what does the word "Ternary" indicate?
    What is strict mode? What are some of the advantages/disadvantages of using it?
  • What are some of the advantages/disadvantages of writing JavaScript code in a language that compiles to JavaScript?
  • What tools and techniques do you use debugging JavaScript code?
  • Explain the difference between mutable and immutable objects.
    • What is an example of an immutable object in JavaScript?
    • What are the pros and cons of immutability?
    • How can you achieve immutability in your own code?
  • Explain the difference between synchronous and asynchronous functions.
  • What is event loop?
  • What is the difference between call stack and task queue?
  • What are the differences between variables created using let, var or const?
  • What are the differences between ES6 class and ES5 function constructors?
  • Can you offer a use case for the new arrow => function syntax? How does this new syntax differ from other functions?
  • What advantage is there for using the arrow syntax for a method in a constructor?
  • What is the definition of a higher-order function?
  • Can you give an example for destructuring an object or an array?
  • Can you give an example of generating a string with ES6 Template Literals?
  • Can you give an example of a curry function and why this syntax offers an advantage?
  • What are the benefits of using spread syntax and how is it different from rest syntax?
  • How can you share code between files?
  • Why you might want to create static class members?

JavaScript Coding Questions

  • Make this work:

    duplicate([1,2,3,4,5]); // [1,2,3,4,5,1,2,3,4,5]
    
  • Create a for loop that iterates up to 100 while outputting "fizz" at multiples of 3, "buzz" at multiples of 5 and "fizzbuzz" at multiples of 3 and 5.

  • Given two strings, work out if they both have exactly the same characters in them.
    Example - Input word and wrdo will returns true because they are the same but just scrambled. But input word, wwro will returns false.

  • What is the value of foo?

    var foo = 10 + '20';
    
  • What will be the output of the code below?

    console.log(0.1 + 0.2 == 0.3);
    
  • How would you make this work?

    add(2, 5); // 7
    add(2)(5); // 7
    
  • What value is returned from the following statement?

    "i'm a lasagna hog".split("").reverse().join("");
    
  • What is the value of window.foo?

    ( window.foo || ( window.foo = "bar" ) );
    
  • What is the outcome of the two alerts below?

    var foo = "Hello";
    (function() {
      var bar = " World";
      alert(foo + bar);
    })();
    alert(foo + bar);
    
  • What is the value of foo.length?

    var foo = [];
    foo.push(1);
    foo.push(2);
    
  • What is the value of foo.x?

    var foo = {n: 1};
    var bar = foo;
    foo.x = foo = {n: 2};
    
  • What does the following code print?

    console.log('one');
    setTimeout(function() {
      console.log('two');
    }, 0);
    Promise.resolve().then(function() {
      console.log('three');
    })
    console.log('four');
    
  • What is the difference between these four promises?

    doSomething().then(function () {
      return doSomethingElse();
    });
    
    doSomething().then(function () {
      doSomethingElse();
    });
    
    doSomething().then(doSomethingElse());
    
    doSomething().then(doSomethingElse);
    
Share Tweet Send
0 Comments
Loading...
You've successfully subscribed to Developer Insider - Interview Question
Great! Next, complete checkout for full access to Developer Insider - Interview Question
Welcome back! You've successfully signed in
Success! Your account is fully activated, you now have access to all content.