Skip to main content

Javascript Hoisting Interview Question and Answers - 5

In this post,I have tried to cover all the types of possible interview questions and answers on hoisting.
If you are not familiar with the hoisting, I would highly recommend you to go to my post on hoisting. Once you are comfortable with the topic, you can attempt these questions. Understanding the type of question will help you to answer. I have provided the hint after each question. All the answers are given at the end of the post.

//Question 1 console.log('bar:', bar) bar = 15 var foo = 1 console.log(foo, bar) var bar
Hint: Basics of hoisting
//Question 2 var foo = 5 console.log('foo:', foo) var foo; var bar = 10; var bar; console.log('bar:', bar) var baz = 10 var baz = 12 console.log('baz:', baz)
Hint: Basics of hoisting
   //Question 3 function foo() { function bar() { return 5 } return bar() function bar() { return 10 } } console.log(foo());
Hint: Think what happens if two functions with same name are hoisted. 
  //Question 4
  function foo() {
   var bar = "I'm a bar variable"

    function bar() {

     return "I'm a bar function"
    }
    return bar()
  }
  console.log(foo())
Hint: Think what is the preference given if a function and variable has same name.
//Question 5 greeting() var greeting = function() { console.log('Good morning') } greeting() function greeting() { console.log('Good evening') } greeting()
Hint: Precedence of function expressions and function declaration and also how these are hoisted.
//Question 6 var foo = 5 console.log('foo:', foo) var foo = 10 console.log('foo:', foo)
Hint: Basics of hoisting.
//Question 7 console.log(foo()); function foo() { var bar = function() { return 3 } return bar() var bar = function() { return 8 } }
Hint: how hoisting works happens when two function exression has same name.
  // Question 8
  var x = 'foo';
  (function() {
    console.log('x: ' + x)
    var x = 'bar'
    console.log('x: ' + x)
  })()
Hint: Stick to the basics of hoisting
//Question 9 function foo() { console.log('First') } foo() function foo() { console.log('Second') }
Hint: Similar to question No 3
//Question 10 var foo = 5 function baz() { foo = 10 return function foo() {} } baz() console.log(foo)

Output 1:
'bar:' undefined
1 15

Output 2:
'foo:'5 'bar:'10 'baz:'12

Output 3:
10

Output 4:
error: bar is not a function

Output 5:
Good evening Good morning Good morning

Output 6:
'foo:'5
  'foo:'10

Output 7:
3

Output 8:
'x: undefined 'x: bar'

Output 9:
'Second'

Output 10:
5

Hope this was helpful. Comment me how much you scored. Let me know if any other question you encounter. Subscribe and leave your comments to support.

Thank you !!

Comments

  1. Awesome questions.
    I was actually asked two of these question in an interview.
    ☝��

    ReplyDelete

Post a comment

Popular Posts

Come Closure in Javascript

What is a closure? If we want to derive a definition,we can say, A closure is a feature of Javascript where inner function has access to the outer (enclosing) function’s variables—scope chain. This scope chains means inner function has: access to its own scope (variables defined between its curly brackets and its parameters), access to the outer function’s variables and parameters,  access to the global variables. Now we will look into it in detail. Consider following example var globalVar = "xyz"; function outerFunc(outerArg) { var outerVar = 'Alex'; function innerFunc(innerArg) { var innerVar = 'Chris'; console.log("globalVar = " + globalVar); console.log("outerArg = " + outerArg); console.log("innerArg = " + innerArg); console.log("outerVar = " + outerVar); console.log("innerVar = " + innerVar); } innerFunc(456); } outerFunc(12

Javascript Closure Interview Questions and Answers - 6

Here in the post, I have posted all the possible interview questions and answers on closure. If you are not familiar with the closure , I would highly recommend you to go to my post on   closure . Once you are comfortable with the topic, you can attempt these questions. All the answers are given at the end of the post. //Question 1 function foo() { var a = 5 function bar() { console.log(a) } return bar; } var baz = foo() baz()   // Question 2 function outer(a) { var b = 2 function inner() { var c = 5 console.log(a * b * c) } return inner; } var multiply = outer(5) multiply() // Question 3 const arr = [10, 20, 30, 40, 50] for (var i = 0; i < arr.length; i++) { setTimeout(function() { console.log('Index: ' + i + ', element: ' + arr[i]) }, 1000) } // Question 4 for (var i = 0; i < 5; i++) { setTimeout(function(i) { return function() {