DEV Community

Code Craft-Fun with Javascript
Code Craft-Fun with Javascript

Posted on

Javascript 【tricky】💡interview output questions (Part 2)

What is the output for each code mentioned below and Why ?

Add your solutions with explanation in the comment section.

Question 1

var y = 1; if (function f(){}) { y += typeof f; } console.log(y); 
Enter fullscreen mode Exit fullscreen mode

Question 2

var output = (function(x){ delete x; return x; })(0); console.log(output); 
Enter fullscreen mode Exit fullscreen mode

Question 3

var Employee = { company: myCompany } var emp1 = Object.create(Employee); delete emp1.company console.log(emp1.company); 
Enter fullscreen mode Exit fullscreen mode

Question 4

(function() { var a = b = 5; })(); console.log(b); 
Enter fullscreen mode Exit fullscreen mode

Question 5

function test() { console.log(a); console.log(foo()); var a = 1; function foo() { return 2; } } test(); 
Enter fullscreen mode Exit fullscreen mode

Top comments (6)

Collapse
 
mellen profile image
Matt Ellen-Tsivintzeli

damn. those are tricky!

Collapse
 
mellen profile image
Matt Ellen-Tsivintzeli

Now that I've looked into them, I understand all of them except for question 1. how is a function declaration legal in an if statement?

Collapse
 
codecraftjs profile image
Code Craft-Fun with Javascript • Edited

Consider this -

console.log(typeof function f(){}) 
Enter fullscreen mode Exit fullscreen mode

You will get its type as function. The function can be treated as a value , as in javascript everything is an object. Even functions are objects. Functions can be assigned to a variable as well.

let sum = (a,b) => a + b; 
Enter fullscreen mode Exit fullscreen mode
Thread Thread
 
mellen profile image
Matt Ellen-Tsivintzeli

OK. I think I get it. Because a function declaration can be on the RHS of an assignment statement it can go in the middle of an if statement?

Collapse
 
codecraftjs profile image
Code Craft-Fun with Javascript

Checkout Part 1 as well !

Collapse
 
tylim88 profile image
Acid Coder

I failed all of them lol