No video

Hoisting in JavaScript and function scope issues with keyword var

  Рет қаралды 64,023

techsith

techsith

Күн бұрын

Understanding Hoisting in JavaScript, also look at function scoping with keyword var.
In this tutorial we look at following issues with keyword var in ES5
- function scope issues
- Hoisting
- lack of const
Solution with keyword 'let' and 'const' in ES6 ( ES2015)

Пікірлер: 179
@Sarmadfarhankhan
@Sarmadfarhankhan 7 жыл бұрын
whenever I have doubts in JavaScript , I think of techsith 😉
@NishantGupta_Neo
@NishantGupta_Neo 6 жыл бұрын
No one has explained Hoisting, let alone the reasons for hoisting in such a lucid manner !
@Techsithtube
@Techsithtube 6 жыл бұрын
I hope it cleared the concept for you . Thanks for watching Nishant!
@NishantGupta_Neo
@NishantGupta_Neo 6 жыл бұрын
techsith without a shadow of doubt!
@anacarolinamedeiroslabeca2761
@anacarolinamedeiroslabeca2761 7 жыл бұрын
Very nice video. Finally understood the issues of using var and the advantage of using ECMAScript 6 'let' keyword instead. Thank you very much!
@Techsithtube
@Techsithtube 7 жыл бұрын
Glad to know. Thanks for watching :)
@UrbanBDKNY
@UrbanBDKNY 7 жыл бұрын
Thanks for the video. The best information I got from this video is that let is block scope. That goes a long way towards knowing how to use it and how it is different from var which is function scoped etc
@joshrochon6243
@joshrochon6243 6 жыл бұрын
Wow, hilarious. When you brought up the thing about the interview. Had one today, they asked me about hoisting, and i didn't do so great, and now I'm here
@himanshushah2683
@himanshushah2683 6 жыл бұрын
The best explanation in all the tutorials video. not found better than your explain.keep posting, keep sharing .
@Techsithtube
@Techsithtube 6 жыл бұрын
Thanks Himanshu for watching!
@mdawadud3520
@mdawadud3520 4 жыл бұрын
I really appreciate it because it is more clear than all video i get over the internet and please show us a complete video course about zero to advance level. thanks
@Techsithtube
@Techsithtube 4 жыл бұрын
Shiplu I have a full course here udemy.com/js-masterclass/
@vicentec1521
@vicentec1521 6 жыл бұрын
Mozilla needs to hire you to simplify their documentation! Thank you very much!
@justyna6134
@justyna6134 2 жыл бұрын
I like your style of explaining the issues - respect ! Thank you !!!
@BigMoneySniper
@BigMoneySniper 7 жыл бұрын
Your unbelievable man.... Straight up unbelievable. God has blessed us with hell of a JS Guru. I wont take this blessing for granted. Unbelievable should be your nickname brotha. Keep up the amazing work.
@Techsithtube
@Techsithtube 7 жыл бұрын
Thank you for watching! :)
@subhashmahimaluri
@subhashmahimaluri 6 жыл бұрын
You are very good teacher, explained with examples. I have learned lot of things from your tutorials.
@piashmehedi
@piashmehedi 6 жыл бұрын
techsith is simply best for javascipt :)
@vinodhpaul3870
@vinodhpaul3870 6 жыл бұрын
I really love the way you explain the most confusing concepts in js...Feels like you have the right choice of words that trigger my brain to understand..lol. I will make sure to follow your vids regularly. Keep posting cheers!!!!
@ankitkumarvashist8991
@ankitkumarvashist8991 5 жыл бұрын
You are a great teacher , i have doubts even after watching other JS tutorial, as they teach the syntax only, not clarifying the doubts why we use any particular syntax what it does. #Love and Respect to you from INDIA.
@Techsithtube
@Techsithtube 5 жыл бұрын
I am glad it helped. THanks for watching and keep learning!
@gaurab1247
@gaurab1247 7 жыл бұрын
Thanks for making ours life tremendously easy.I have been watching all of your's tutorials and you have a great teacher in you.Keep it up.It would be great if you come up with some DS/Algo tutorial as well.
@mahesh82398
@mahesh82398 7 жыл бұрын
Best clarification of let and const keywords, i have seen so far. Thanks Sir :)
@Techsithtube
@Techsithtube 7 жыл бұрын
Thanks :)
@arpitdubey17
@arpitdubey17 5 жыл бұрын
i really appreciate your work....and your teaching skill are awesome....simple and easy to learn by you.....................thank you so much..........
@krishnat9767
@krishnat9767 6 жыл бұрын
Excellent..simple and straightforward..
@anishvijay6445
@anishvijay6445 2 жыл бұрын
I really enjoyed the video and understood all the concepts related hoisting and issues of constants
@MajidEltayebZ
@MajidEltayebZ 4 жыл бұрын
Thanks for your simple explanation, this really means you understand what you're talking about, keep going (Y).
@ahmedboutaraa8771
@ahmedboutaraa8771 4 жыл бұрын
your tutorials are art int itself
@AmeerHamza-jy5ml
@AmeerHamza-jy5ml 4 жыл бұрын
Thnaks Respected Sir 🤗 Lot of Love from PAK
@Techsithtube
@Techsithtube 4 жыл бұрын
Keep on learning brother and thanks for the kind comment.
@Carl-yu6uw
@Carl-yu6uw 5 жыл бұрын
Mr T Sith, so clear, so useful, so thank you!
@souravsuman2633
@souravsuman2633 4 жыл бұрын
It was very helpful sir ....... explanation was clear and perfect....
@pramodkumarw
@pramodkumarw 6 жыл бұрын
Awesome example with simple explanation and presentation
@Techsithtube
@Techsithtube 6 жыл бұрын
Thanks for watching Pramod!
@TheSuyashgupta
@TheSuyashgupta 3 жыл бұрын
felt happy after seeing the video, doubt cleared
@damoon_az2465
@damoon_az2465 7 жыл бұрын
Great explanations, your video made hoisting much easier to understand:)
@Techsithtube
@Techsithtube 7 жыл бұрын
Thanks for watching! :)
@shashankpandey1019
@shashankpandey1019 5 жыл бұрын
Really a great tutorial , I have ever seen.
@tranhuy2304
@tranhuy2304 7 жыл бұрын
thank you for covering this, its really clear out everything i want to know. So near the end of the video when you declare the var y = 2 outside the function expression even though inside the function it already had the console.log for y before we initialize the y with 1 so thats when the hoisting kicked in rather than the lexicial scope rule where every outer environment can be accessed inside function so in this case the hoisting just declare the variable y and not initialize any value for the variable y so in this case undefined. So far i think javascript is the only language that one declare a variable in a global scope you can literally use it almost any where, javascript function is also an object itself. It would be nice to see you explain about the scope chain and closure🤔🤔But keep up the good work bro
@Techsithtube
@Techsithtube 7 жыл бұрын
I do have a video on both scope chain and closures. you can check it out. Thanks for watching!
@indrajitmate2904
@indrajitmate2904 6 жыл бұрын
Best simple n most understandable concept .....
@Pm80334
@Pm80334 5 жыл бұрын
Best in business , fantastic to say the least▶️
@Techsithtube
@Techsithtube 5 жыл бұрын
Thanks Prasad for watching and an Awesome comment.
@abhaysehgal5457
@abhaysehgal5457 7 жыл бұрын
awesome video sir....just one advice i want to give you please put this video in top of this playlist...as i started watching your playlist and in above videos you have used "let" then for finding difference between var and let takes a lot of time...but after watching this video i get completely understand the difference between these two...once again thank you so much...waiting for more videos :)
@akshaysharma30498
@akshaysharma30498 5 жыл бұрын
Who... Who... Would dislike this great video XD... The condition could be they didn't want to learn anything XD .... Great explanation as always!
@Techsithtube
@Techsithtube 5 жыл бұрын
Thanks buddy. I appreciate the comment. Thanks for watching!
@vishnum9747
@vishnum9747 Жыл бұрын
Your videos are so informative keep uploading new videos
@salmanmoin3588
@salmanmoin3588 5 жыл бұрын
very nicely defined, pls keep on doing advanced JS topics incl arrow fn etc.
@Techsithtube
@Techsithtube 5 жыл бұрын
salman , I have tones of topics on JS inducing arrow functions and advance JavaScript. please check it out. THanks for watching!
@rakeshpatidar4426
@rakeshpatidar4426 6 жыл бұрын
It's amazing, The way of representation is awesome.
@Techsithtube
@Techsithtube 6 жыл бұрын
Thanks for watching ! :)
@yanivsalman9685
@yanivsalman9685 6 жыл бұрын
this is the best video on that subject. i think you should do some udemy curses so you will se some money of your work!
@Techsithtube
@Techsithtube 6 жыл бұрын
Thanks . I am thinking of building a udemy course.
@xuelianwang5300
@xuelianwang5300 6 жыл бұрын
Super Clear! Thank you!
@davitjanashia9344
@davitjanashia9344 4 жыл бұрын
Very clear and intelligent explanation! Thank you! 💡 👍🏻
@83manosar
@83manosar Жыл бұрын
yes bro
@vohoangan6121
@vohoangan6121 3 жыл бұрын
Well explain so easy to understand, thank you so much
@shyam123m
@shyam123m 5 жыл бұрын
Simple and perfect explanation. Thanks Sir.
@edwinrodriguez9025
@edwinrodriguez9025 5 жыл бұрын
great explanation about the scopes. Thanks
@shikharchaudhary6984
@shikharchaudhary6984 5 жыл бұрын
Best explanation.
@heshankumarasinghe3159
@heshankumarasinghe3159 4 жыл бұрын
Thank you. This video has been really helpful. I learnt new things......
@Techsithtube
@Techsithtube 4 жыл бұрын
Glad it was helpful! Thanks for watching!
@amanueltadesse1655
@amanueltadesse1655 5 жыл бұрын
the best place to look things
@neilpearce
@neilpearce 6 жыл бұрын
It's during the execution context, the JS engine will store all variable and function declarations in memory. Every function creates its own execution context and memory bank. That's why you can call/evoke a function before it is defined, because that declaration has already been stored. ;-)
@Techsithtube
@Techsithtube 6 жыл бұрын
yes, perfectly explained. :)
@faisaltalukder5425
@faisaltalukder5425 Жыл бұрын
Effective Vedio for learning ✅
@Dipenparmar12
@Dipenparmar12 5 жыл бұрын
Great work... keep it up 💪😄😃
@Techsithtube
@Techsithtube 5 жыл бұрын
Thanks for watching buddy
@mohamedelhousany4960
@mohamedelhousany4960 5 жыл бұрын
you are good resource to learn js
@anupsingh24
@anupsingh24 7 жыл бұрын
Great video buddy, cleared my doubts.
@prostoLelouch
@prostoLelouch 7 жыл бұрын
Thanks for this tutorial! You did a great job!
@Techsithtube
@Techsithtube 7 жыл бұрын
Thanks for watching!
@mustaphag
@mustaphag 7 жыл бұрын
Excellent Video. Keep up the good job
@utkarshkandpal5960
@utkarshkandpal5960 6 жыл бұрын
Your videos are Vader Level!
@Techsithtube
@Techsithtube 6 жыл бұрын
the best way to explain the dark side of JavaScript :)
@parasmaniseth7873
@parasmaniseth7873 3 жыл бұрын
Interviewer : do u watch techsith Me: yes Interviewer : you are hired
@Techsithtube
@Techsithtube 3 жыл бұрын
I hope that did really happened :)
@parasmaniseth7873
@parasmaniseth7873 3 жыл бұрын
I have mentioned ur channel in the interview and got to know that interviewer also follows u🤪
@redeeshrv3319
@redeeshrv3319 6 жыл бұрын
Superb !!! Please do some videos on JavaScript common patterns
@Techsithtube
@Techsithtube 6 жыл бұрын
I do have plans for that. Will start making them soon.
@dhilipkumar5867
@dhilipkumar5867 6 жыл бұрын
Nice explanation..keep doing the good work
@quarter-lifecrisis5127
@quarter-lifecrisis5127 4 жыл бұрын
so simple and informative ❤👍🏻 thank you
@jacksto123
@jacksto123 5 жыл бұрын
Thanks for the video. Is var still used often? Or is everyone using let and const now?
@Techsithtube
@Techsithtube 5 жыл бұрын
I think you should only use let and const. now that most browsers supports it.
@sahilarora7186
@sahilarora7186 4 жыл бұрын
That was clean sir. Thank you
@swathikumar3074
@swathikumar3074 4 жыл бұрын
whenever create any variable with var keyword it will be added to window (dom) object directly so it will be available in that particular context var is like global variable. var v; console.log(window.v);-->u will get undefined not an error
@100krishna100
@100krishna100 7 жыл бұрын
Thanks for the video. Can I know the difference between lexical scoping and function Closures?
@Techsithtube
@Techsithtube 7 жыл бұрын
lexical scoping means variable defined outside the function is available inside. Function closure is , when a function uses a variable defined outside because of the lexical scoping, it will hold it inside a thing call closure ( internally) , so if you return this function it will persists the value where ever its used. I do have few tutorials on it. one is called closure, another is function chaining and there is also a tutorial on function mixins which uses closures.
@Paunitza
@Paunitza 3 жыл бұрын
Great explanation. Thank you!
@Techsithtube
@Techsithtube 3 жыл бұрын
Glad it was helpful! Thanks for watching!
@MylesGmail
@MylesGmail 5 жыл бұрын
Awesome channel!
@angelcaru
@angelcaru 4 жыл бұрын
Another thing with var and let is: var x = x; gives you a variable x with the value of undefined but let x = x gives you Uncaught ReferenceError: Cannot access 'x' before initialization at whateveryourfileis.js:whateverthelinenumberis:whateverthecolumnnumberis
@hemantgajbe8366
@hemantgajbe8366 5 жыл бұрын
Thank you Sir for clearing concepts !!
@catherinecordova512
@catherinecordova512 6 жыл бұрын
This was so clear and helpful! Thank you!!!
@Techsithtube
@Techsithtube 6 жыл бұрын
Thanks for watching Catherine! :)
@AngeliqueGia
@AngeliqueGia 5 жыл бұрын
Best tutorial! Thanks
@Techsithtube
@Techsithtube 5 жыл бұрын
Thanks for watching Gia:)
@vishalprajapti3544
@vishalprajapti3544 4 жыл бұрын
Very helpful tutorial....
@ashwinichougale3432
@ashwinichougale3432 3 жыл бұрын
Very nice video.
@Techsithtube
@Techsithtube 3 жыл бұрын
Thank you very much!
@rohil3023
@rohil3023 4 жыл бұрын
This helped me understand hoisting thanks alot :)
@chirashankar4495
@chirashankar4495 3 жыл бұрын
Can you please explain the second part where you assign 2 to var y and then if you comment out the other assignment to the same variable the console.log would display 2.
@STUPIDYOUTUBE_HIDINGMSGS
@STUPIDYOUTUBE_HIDINGMSGS 4 жыл бұрын
great explanation, thank you.
@ScienceExploration101
@ScienceExploration101 4 жыл бұрын
Ur the best
@Techsithtube
@Techsithtube 4 жыл бұрын
Thanks Ankit for a an awesome comment
@manojkumarganigapeta2966
@manojkumarganigapeta2966 6 жыл бұрын
nice video it's really helping to me thanks sir , have you done any video on design patterns in javascript sir?
@Techsithtube
@Techsithtube 6 жыл бұрын
I am using design patterns in many places. Here are some of the videos. call, apply and bind: kzfaq.info?o=U&video_id=AYVYxezrMWA Decorator pattern: kzfaq.info/get/bejne/lZ6ngseWlszRdYE.html Factory Pattern: kzfaq.info/get/bejne/etZ3qKd3sJrco6c.html
@davideugene7911
@davideugene7911 7 жыл бұрын
Merci beaucoup. C'était très clair :)
@Techsithtube
@Techsithtube 7 жыл бұрын
Merci d'avoir regardé :)
@davideugene7911
@davideugene7911 7 жыл бұрын
:) So you speak French?
@Techsithtube
@Techsithtube 7 жыл бұрын
Little bit. Few years ago, I stayed in Paris for few months. That's when I learnt french.
@DominicVictoria
@DominicVictoria 5 жыл бұрын
Uhm. Are they really garbage collected? How does function factories work then? doesn't function factories return a reference of an object that was created inside the factory?
@naren6666
@naren6666 7 жыл бұрын
Awesome tutorials...
@ganapathilana7069
@ganapathilana7069 3 жыл бұрын
clear example. thanks
@nobir98
@nobir98 2 жыл бұрын
I think 'let' do hoisting but it doesn't assign to default value undefined. it assign where the developer declared. I might be wrong though
@woofwoofunited
@woofwoofunited 6 жыл бұрын
Well explained, thank you. Is there ever a usecase where you would rather use var instead of let?
@Techsithtube
@Techsithtube 6 жыл бұрын
You should not use 'var' at all . its anipattern.
@woofwoofunited
@woofwoofunited 6 жыл бұрын
Thanks I use const or let instead, from experience though has there been a usecase where var is preferred to let. Im assuming no?
@Techsithtube
@Techsithtube 6 жыл бұрын
yes use let or const , and never use var.
@woofwoofunited
@woofwoofunited 6 жыл бұрын
Thank you, well done on making such a good video!
@codeative
@codeative 5 жыл бұрын
You're amazing .. thank you
@satyendrakannaujiya187
@satyendrakannaujiya187 5 жыл бұрын
Thanks great tutorial
@iqraabdulrauf3402
@iqraabdulrauf3402 5 жыл бұрын
good one
@specsbattle1340
@specsbattle1340 5 жыл бұрын
Yep this was in my interview today lol.
@Techsithtube
@Techsithtube 5 жыл бұрын
Hope you answered it correctly. . :)
@specsbattle1340
@specsbattle1340 5 жыл бұрын
@@Techsithtube not quiet, I was not too clear about the var behavior in functional scope vs block scope. Now I am much more clear on this topic thanks to you. I also watched and liked your setTimeout with var and let, that was the exact question she asked. I am also making videos on my channel about tech interviews, I think the best way to learn is to teach. Now I am more confident to go to any UI interviews because as far as I know, scope questions always come up and now I should able to explain the weird behavior of var.
@legendarygaming7790
@legendarygaming7790 3 жыл бұрын
Great Video.
@alinawaz4034
@alinawaz4034 5 жыл бұрын
nice Explanation
@akbaralimajeed
@akbaralimajeed 5 жыл бұрын
Nailed it
@shilpasyal55
@shilpasyal55 5 жыл бұрын
Great Video. Thanks 😊
@srikanthuppala8297
@srikanthuppala8297 4 жыл бұрын
I understand hoisting. But I want to know why hoisting? Could you please help to understand.
@volodymyrkhimiak1460
@volodymyrkhimiak1460 6 жыл бұрын
ДЯКУЮ!!! It is "Thank you" in Ukrainian!
@Techsithtube
@Techsithtube 6 жыл бұрын
धन्यवाद in hindi. Thanks for watching!
@av5226
@av5226 5 жыл бұрын
can someone explain the interview question ? why is y not 2 ? because of hoisting ??
@tathagata1000
@tathagata1000 4 жыл бұрын
Good one, thanks
@gabovanlugo
@gabovanlugo 7 жыл бұрын
Awesome!
@Techsithtube
@Techsithtube 7 жыл бұрын
thanks for watching! :)
@MahanteshGurav
@MahanteshGurav 5 жыл бұрын
Thank you.
@kaushikdalvi4641
@kaushikdalvi4641 5 жыл бұрын
Thank you so much!
@carlosw9379
@carlosw9379 6 жыл бұрын
Thanks!
@zaibkhan4862
@zaibkhan4862 6 жыл бұрын
Really help me :) Thank you
@Techsithtube
@Techsithtube 6 жыл бұрын
Thanks for watching :)
@customdev7078
@customdev7078 5 жыл бұрын
hey..@techsith what are uses of varaible hoasiting ..
@Techsithtube
@Techsithtube 5 жыл бұрын
There is no use of variable hoisting its one of the side effect of functional scope .
@konduruashokkumar7090
@konduruashokkumar7090 6 жыл бұрын
eventhough variable a is inside function but it's woking outside function also please check this code var x=function() { var a=10; } alert(a); x();
@Techsithtube
@Techsithtube 6 жыл бұрын
try this out. Its not working jsfiddle.net/0cx2u7vL/
@deeproy7292
@deeproy7292 5 жыл бұрын
thank you
setTimeout and setInterval in JavaScript
12:55
techsith
Рет қаралды 34 М.
白天使选错惹黑天使生气。#天使 #小丑女
00:31
天使夫妇
Рет қаралды 15 МЛН
Пройди игру и получи 5 чупа-чупсов (2024)
00:49
Екатерина Ковалева
Рет қаралды 4,3 МЛН
Tricky JavaScript interview questions and answers
21:01
techsith
Рет қаралды 132 М.
Javascript Closure tutorial ( Closures Explained )
12:52
techsith
Рет қаралды 543 М.
Differences Between Var, Let, and Const
8:37
Web Dev Simplified
Рет қаралды 187 М.
Async Await JavaScript ES7
26:39
techsith
Рет қаралды 120 М.
Bjarne Stroustrup: C++ | Lex Fridman Podcast #48
1:47:13
Lex Fridman
Рет қаралды 1 МЛН
Learn JavaScript Hoisting In 5 Minutes
5:40
Web Dev Simplified
Рет қаралды 129 М.
Inheritance in JavaScript - Prototypal Inheritance tutorial
20:06
ES2021
20:18
techsith
Рет қаралды 13 М.
Lecture 6: Version Control (git) (2020)
1:25:00
Missing Semester
Рет қаралды 674 М.
javaScript call apply and bind
15:23
techsith
Рет қаралды 356 М.