Tricky Parts of JavaScript [Part 3]

in javascript •  3 months ago

Welcome to the 3rd part of JavaScript Tricky Part. In this post we will be seeing some functions and hoisting related stuff.. These posts are to teach you the basic functioning of JavaScript so that you can tackle any complicated problem in future. Here we begin...


Q1. What will be the output of code below?

var a = "funnyman"



(function() {



 console.log("Value of a = " + a)



 var a = "steemit"



 console.log("Value of version2 a  = " + a)



})()




Ans: The output of the above code execution will be as 

Value of a = undefined

Value of version2 a  =  steemit

So why the value in the first log is undefined? Well the answer is hoisting which moves all the variable declarations to the top of the function where these  are defined. So the above code executes as:


var a = "funnyman"



(function() {

 var a = undefined  // Hoisting in action.

 console.log("Value of a = " + a)



 a = "steemit" // Notice here



 console.log("Value of version2 a  = " + a)



})()




Q2. What is the difference between the following function declarations?

1. var a = function() {}
2. function a() {}

Ans: The main difference between these declarations is the first one is defined at the runtime and the second one at parse time.  That is why in case of second function calling it before the function declarations works whereas it doesn't in case of the first one.

a(); // This will work without any error.

function a() {}
a(); // It is going to throw error.

var a = function() {}


Q3. What is the going to be the output of the following code?

var i = 10;

var j = i = typeof j

console.log(j)


Ans: Well, this is a tricky one. In order to answer this question you will need to into a bit depth how the parsing works and what is associativity. I am not going to explain about these but just a brief overview. It defined how our operators and variables are processed. In our case it will be processed From Right to Left . So with that first typeof will be evaluated which is undefined which will be assigned to i and then to j . And hence the value of j is undefined


More CONTENT to COME...STAY TUNED

@funnyman

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Great post as always. I love it.

·

Let me know if you need any help

·

Thanks

·

Thanks man

·

Thank you for reading

·

Thanks for coming by

·

Please share

·

Thanks again

·

Glad to post it

·

Cool

So i am learning a new language .. Thankyou