Differences Between Var, Let, and Const

Поделиться
HTML-код
  • Опубликовано: 10 фев 2025
  • You have probably watched many different tutorials, and you may have noticed that some tutorials use var to declare variables while others use let or even const. It can get confusing quickly on what the differences are between the keywords, so in this video I am going to be explaining everything you need to know about var, let, and const. I will be going over their differences as well as explaining what situations you should use each keyword.
    If you have any suggestions for a JavaScript topic, please let me know in the comments below.
    Let vs Const vs Var Article:
    blog.webdevsim...
    Twitter:
    / devsimplified
    GitHub:
    github.com/Web...
    CodePen:
    codepen.io/Web...
    #VarVsLet #JavaScript #WebDevelopment

Комментарии • 224

  • @ianoliver6828
    @ianoliver6828 4 года назад +245

    You have a super rare skill. It's rare to find someone who is both a skilled programmer AND a skilled teacher / communicator. Thank you for your videos

    • @olegfare4625
      @olegfare4625 2 года назад +10

      and Zach Efron level of handsome

    • @sclutzo
      @sclutzo 2 года назад +2

      Totally agree!

    • @samanthawu1637
      @samanthawu1637 6 месяцев назад

      I second this!

    • @Peace-bt7mb
      @Peace-bt7mb Месяц назад

      True. I know lots of really great skilled programmers but they don't really know how to explain it to a beginner

  • @camilafloressanhueza7966
    @camilafloressanhueza7966 4 года назад +155

    OMG!! I had seen 100000 videos whose explanations were extremely complicated, but you explained it in less than 5 minutes!! Thank you very much

    • @GoogleAccount-jw1rd
      @GoogleAccount-jw1rd 2 года назад +1

      And understandable

    • @horaciothedesigner
      @horaciothedesigner Месяц назад

      Yeah, I love this Channel because he is great at explaining in such a simple way. Helped me with some learning breakthroughs. Great for beginner developers or coders.

  • @Max-nm8ct
    @Max-nm8ct 3 года назад +44

    Mate, I must say, your hair is on fleek!

  • @AlexTechie
    @AlexTechie 6 лет назад +60

    6:36 I didn't know that. This is why I always watch your videos, even if I think I understand the subject before hand. Great work! 👍

    • @WebDevSimplified
      @WebDevSimplified  6 лет назад +13

      It is a bit counter intuitive based on the name. You can use Object.freeze to create an object that cannot have the properties reassigned, but it will still let you reassign a nested property such as company.ceo.name = 'New name'

    • @AlexTechie
      @AlexTechie 6 лет назад +4

      @@WebDevSimplified thanks for the tip! As I was watching the part I referenced earlier, I was wondering how we would assign constants to the properties of an object, so it's like you read my mind. :D

  • @TheSlimSh4dy
    @TheSlimSh4dy 4 года назад +11

    Thank you for the clear explanation! Currently, I'm learning HTML, CSS & Javascript and if I don't understand something, I'm firstly looking at your channel to find an explanation. If it doesn't exist on your channel, then I'm searching in other sources. You are a very good teacher, your videos are short, consistent and very clear, without any unnecessary content. Thank you very much for sharing your time to make these videos.

  • @dorothyglade9087
    @dorothyglade9087 3 года назад +1

    This was great, you speak at just the right speed and your voice is clear. This really helped me and my husband with something in our bootcamp.

  • @LeHuffy
    @LeHuffy 6 лет назад +9

    This video came just in time. We are going through Javascript and JQuery right now in my bootcamp!

    • @WebDevSimplified
      @WebDevSimplified  6 лет назад +3

      I'm really glad to hear. If you run into anything that confuses you in the bootcamp feel free to let me know, and I can try to help or make a video on the topic.

    • @LeHuffy
      @LeHuffy 6 лет назад

      @@WebDevSimplified Awesome will do!

  • @sagarioharvey6910
    @sagarioharvey6910 2 года назад

    Web dev here in the PH. "Man I love your videos, your making a great impact" //awesome

  • @michaelmaloy6378
    @michaelmaloy6378 Год назад +1

    Whenever I see that face, I know useful information is coming my way.
    Simple, clear, and very helpful. Thank you as always!

  • @moonlightCR7
    @moonlightCR7 Год назад

    Thanks a billion, Kyle for explaining the difference among these keywords.

  • @tonic.9234
    @tonic.9234 3 года назад +1

    I never knew var worked like this, and I've been using Javascript almost daily for over 2 years. I always assumed it worked like let because I have a background in other programming languages and assumed it's scoping worked the same. So wild! Thanks for the clarification!

  • @theNikijspictures
    @theNikijspictures Год назад +1

    Really good explanation, for beginner level - if reading info only in text (with no visual examples), it gets confusing quickly on this topic. Cheers😉

  • @dsvhs93
    @dsvhs93 4 года назад +1

    Whenever Kyle comes out with the JavaScript class that he is working on.... I am purchasing it. He is awesome! Thank you Kyle!

    • @WebDevSimplified
      @WebDevSimplified  4 года назад

      Thank you for the support! I start recordikg tomorrow!

  • @pratikthorat3480
    @pratikthorat3480 3 года назад +1

    This is the best explanation I've ever seen. I do know the differences yet I learnt something new

  • @pooja6380
    @pooja6380 2 года назад +1

    learn so much important points and the actual difference ....thanks a lot

  • @AidanJoyce
    @AidanJoyce 2 года назад +2

    Would like to say, well done and thank you for a clear and concise explanation of the similarities, differences and when to use, Var, Const and Let.
    Watched other videos and without doubt, you nail it better here with both explanation and example.
    Will be watching more of your stuff as this was a great measure stick for the quality of teaching.
    Keep up the great work.

  • @jthomasaurus
    @jthomasaurus 5 лет назад +6

    Another super-clear explanation. Love your video style, brevity, and way of explaining everything. Plain and simple!

  • @gqntexas
    @gqntexas 3 года назад

    Great great explanation.. you always here that the differences is the 'block scope' and then wonder, well, like within an if or for loop, but nobody else ever says that...

  • @derrick3534
    @derrick3534 5 лет назад +5

    man you are teaching the things that are not widely discussed which is why i am going to subscribe. You have a true gift of teaching in simple terms. i enjoy your channel, especially the tutorial on promises

    • @WebDevSimplified
      @WebDevSimplified  5 лет назад +2

      Thank you! I try to cover the topics that I know confused me or other people I know, because those will be the most helpful for others.

  • @dozadetrezire7455
    @dozadetrezire7455 2 года назад +28

    You forgot to say one more thing: when you declare a variable with var keyowrd, this automatically creates a property inside the Window ojbject.. so, if you say for example: var x = 1; and after that you say: console.log(window)... you will see that in the window object you will find the property X with the value of 1. Instead, if you declare a variable with let or const, this won't ceate a property inside the Window object. I guess this was also very important to mention!

  • @therealbrucewayne24
    @therealbrucewayne24 2 года назад +1

    Yes I did learn something thank you very much man it was hard for me to understand this but you explained it in like less than 10 minutes lol you have a good day too :)

  • @dacfniel5442
    @dacfniel5442 5 лет назад

    You are the best teacher on RUclips.

  • @rohit9969171579
    @rohit9969171579 5 лет назад +11

    It was very crystal clear explanation thank you.

  • @samanthawu1637
    @samanthawu1637 6 месяцев назад

    You were born to teach! Awesome!

  • @raaghavendrahm4883
    @raaghavendrahm4883 3 года назад

    I am just starting with JS and I was stuck with this like hell. You made it so clear. Thanks a lot!!

  • @injector6926
    @injector6926 3 года назад

    Best Web Development I seen evrr

  • @videospromoter5884
    @videospromoter5884 4 года назад

    Checked 10s of video and this video told me hmm you understand this now . say thanks to him :) Thanks Dude

  • @santra528
    @santra528 4 года назад

    This is complete explanation of let vs const vs var I have ever seen. Thanks Kyle 😊

  • @sandybathwater8385
    @sandybathwater8385 3 года назад

    So simple, thank you so much! If I search for something and see your face in the results, I am saved. :)

  • @borislavaborisova7274
    @borislavaborisova7274 2 года назад

    Thank you! This video was very helpful. Just what I needed.

  • @jahneychriast2141
    @jahneychriast2141 4 года назад +2

    தெளிவான விழக்கம் நன்றி 🙏🏽

    • @manojbharadwaj456
      @manojbharadwaj456 4 года назад +2

      That's so motivating. Because nobody understood that!

  • @jorgefrias7889
    @jorgefrias7889 Год назад

    Amazing explanation. Simple and straight to the point. Thank you!

  • @nessparadis6948
    @nessparadis6948 Год назад

    Great video. Succinct, clear to understand, and I learned a lot. Thank you.

  • @thecoderabbi
    @thecoderabbi 4 года назад +1

    Thank you very much Kyle, This is great. Very explicit. I think I would begin using the 'const' instead of the 'var'
    Thanks ✌️

  • @ImHansana123
    @ImHansana123 9 месяцев назад +3

    The good old days when we didn't have chatgpt.❤️

    • @WebDevJapan
      @WebDevJapan 9 месяцев назад

      lol true, but I like seeing a human explain it sometimes. Even though I can get quick answers from Professor GPT, I've made it a habit to watch one short intructional video like this everyday.

  • @bozok1903
    @bozok1903 5 месяцев назад

    Very clear explanation. Thank you for that.

  • @aisana99
    @aisana99 2 года назад

    thank you :D you shared more differences than my constructor in my Full-Stack Bootcamp! Will subscribe and watch all other videos of yours

  • @tiltify2393
    @tiltify2393 3 года назад

    finally I understand the difference, thanks man A LOT

  • @sadhappy8860
    @sadhappy8860 Год назад

    Super clear explanation, many thanks

  • @baliyachtservices7505
    @baliyachtservices7505 2 года назад

    I was wondering just that! Thanks so much

  • @khaktus
    @khaktus 2 года назад +1

    While I prefer Kyle's tutorials over the others for various reasons (extent > clarity > simplicity), for this one I'll differ from the praise-storm below - this was just one of the many confusing explanation of the var|let|const topic that I've seen so far.
    This is the problem that many skilled developers have - they assume that as developers they have analytical thinking and provide well structured explanations (naturally, by default) - but I have seen - since the university times to professional days - that the paradoxical situation happens: techies often do the exact opposite: they do not adhere to the structure/hierarchy of the topic, nor the consistent use of terms they set in the beginning. :D Something to work on throughout professional life.
    In first part, you repeatedly state that var does and let does not allow to redeclare the variable, then you say the difference between let and const is that const does not allow to redeclare the variable. That paused my brain, while explanations went on. Maybe stating more clearly what is the difference between (your use of) "redeclare" and "redefine" and "reset" and "reassign" ... would help. Particularly in this one topic. :)
    I'd welcome more "technical" "analytical" (or tabular ;) ) than the "narrative" approach here. And particularly a consistent use of terms.
    1 minute:
    redeclare:
    var|let|const myThingy = 10
    var|let|const myThingy = 20
    redefine/reassign/reset variable value:
    var|let|const myThingy = 10
    myThingy=20
    redefine object|array items value (not object|array value, which is just its memory address, so that remains "constant"):
    var|let|const myObject = [10, 11];
    myObject[0] = 20
    1 minute:
    | redeclare| reassign value of variable | reassign value of item in the array or property in the object|
    ------------------------------------------------------------------------------------------------------------------------------------------------------------
    var yes yes yes
    let no yes yes
    const no no yes
    Also, from the many lessons on the scope, I understood that "scope" is something defining on what level of nesting we are (regardless if it is a function or block or just anything between {}). This perspective was often emphasized. Here, for the first time, I hear that different scope is actually defined by either function or block. Good point here!

    • @nowhererealm
      @nowhererealm 2 года назад

      dude yes! I was wondering how the heck are there so many people praising the explanation when i couldnt understand why he said let cant redefine a variable then goes on and says thats the only difference between const and let?? lmao wtf

  • @JEffinger
    @JEffinger 2 года назад

    Thank's bro that was a really clear explanation.

  • @bujjivenkateshwarlu6942
    @bujjivenkateshwarlu6942 3 года назад

    Hey thanks. earlier i had confusion about block scope and Function scope. Now its cleared.

  • @СашаТюменцев-ш9ь
    @СашаТюменцев-ш9ь 3 года назад

    huge thanks for the explanation, only you made it clear to me!

  • @ev_dash
    @ev_dash 2 года назад

    Your videos are helping me out alot! Thank you ❤

  • @somtovitus
    @somtovitus 4 года назад

    Best video on this topic

  • @khisus20
    @khisus20 2 года назад

    This is truly simplified

  • @nobitalazy9791
    @nobitalazy9791 3 года назад

    you are a rare gem my friend!!!

  • @weligamage1
    @weligamage1 2 года назад

    Clear and concise, Thank you

  • @itsshafayat6378
    @itsshafayat6378 8 месяцев назад

    someone get this absolute master a stellar coding setup i.e a better keyboard

  • @rajlakshmijoshi
    @rajlakshmijoshi 2 года назад

    Thnks for the detailed vid, just one correction: At 5:35-> const does not allow to 're-declare' the variable, actually should be const does not allow to 're-assign' the variable, but let do.

  • @mayorb37
    @mayorb37 2 года назад

    You make a wonderful work 👍👍👍👍👍 thanks

  • @EyeIn_The_Sky
    @EyeIn_The_Sky 3 года назад +2

    Good old Java script, Let (no pun intended) us introduce "const" that does not allow for re-assigning to avoid human error so that it is "constant" except when it's not...

  • @wr1818
    @wr1818 3 года назад

    thankyou for all the amazing explaining!

  • @stuartgreen5217
    @stuartgreen5217 4 года назад

    Been building sites for 30 years and always avoided JS due to pre jquery experience. Am now taking the time to relearn JS and node while I’m at it and I have to say I’m regretting not doing this sooner. I’ve been programming in C# php Perl VB and JS is a peace of cake by comparison .

  • @kazeemalatishe3828
    @kazeemalatishe3828 3 года назад

    Thanks a lot. You explain things really well.

  • @JonasGavenas
    @JonasGavenas 2 года назад

    Great lesson!
    Thank you, perfect explain.

  • @agaming7888
    @agaming7888 2 года назад

    thanks for this now i know what to do 👍👍👍👍

  • @BackToVoid
    @BackToVoid 6 месяцев назад

    I need a video that of explaining who these Bob and Sally are, you're using them everywhere :3
    Im curious af for real

  • @rickneibauer1
    @rickneibauer1 2 года назад

    I can't move on until i know why something works unless i ABSOLUTELY have to. thanks to you i can move toward the light. goodbye everyone...

  • @derickbank1064
    @derickbank1064 3 года назад

    Thank you for the explanation. Well explained. !

  • @priyanshugupta7614
    @priyanshugupta7614 Год назад

    thank you your explanation was very clear

  • @ruslankovalov8292
    @ruslankovalov8292 3 года назад

    Thanks God we have you to explain this!! thanks!! A lot! A mean that)

  • @halofreak644
    @halofreak644 3 года назад +1

    You the real MVP

  • @pashashyba5006
    @pashashyba5006 2 года назад

    Quite easy to understand. Thanks

  • @LUCCCAS_A
    @LUCCCAS_A 3 месяца назад

    fire video bro!!11!!!1! 🔥🔥🔥

  • @oceanmind1793
    @oceanmind1793 2 года назад

    You made it so clear. Thanks a lot

  • @jankiramulu
    @jankiramulu 2 года назад

    Wonderful explanation.. Than you....

  • @placeholder_name321
    @placeholder_name321 3 года назад

    so so simple. Finally.

  • @kushagraraj3163
    @kushagraraj3163 Год назад

    you r jordi of webdev !!!!!!!

  • @hoakeen
    @hoakeen 2 года назад

    Awesome tutorials! Thank you!

  • @monireachtang712
    @monireachtang712 3 года назад

    very clear explanation! you are awesome!

  • @RS-nz6rn
    @RS-nz6rn 4 года назад

    Thanks for clarifying.

  • @jimilittle
    @jimilittle 3 года назад

    That was awesome. Thank you

  • @guillaumedupont2902
    @guillaumedupont2902 4 года назад

    This was SO helpful. Thank you so much!

  • @ЕдвардГригорян-н6к
    @ЕдвардГригорян-н6к 2 года назад

    great explanation. TY!

  • @mirceahanghiuc4447
    @mirceahanghiuc4447 3 года назад

    A nice topic can be this :
    function justA(){
    a = 1;
    }
    justA();
    console.log(a); // 1

  • @shresthsrivastava27
    @shresthsrivastava27 4 года назад

    Awesome explanation !

  • @mirzashowvik564
    @mirzashowvik564 Год назад

    Great video !!!
    Love it

  • @vikumravinayake1882
    @vikumravinayake1882 3 года назад

    Problem solved
    Thank you very much. Ur a good explainer....

  • @minercreepmc
    @minercreepmc 3 года назад

    Love your channel

  • @coderbhai4832
    @coderbhai4832 3 года назад +23

    1)Declaration Let variable in a {} block scope can't be access outside of it
    2)let name = value1, let name = value2, can't redeclare let twice
    Instead of this should be written name=value2;
    3)let can be change it’s value const can't as it is constant but it can change its object value.🙃

    • @chalk1007
      @chalk1007 3 года назад

      yeah, I was a little confused aswell but this video was made in 2018

    • @dozadetrezire7455
      @dozadetrezire7455 2 года назад +1

      You forgot to say one more thing: when you declare a variable with var keyowrd, this automatically creates a property inside the Window ojbject.. so, if you say for example: var x = 1; and after that you say: console.log(window)... you will see that in the window object you will find the property X with the value of 1. Instead, if you declare a variable with let or const, this won't ceate a property inside the Window object. I guess this was also very important to mention!

  • @robertoriosmorales7528
    @robertoriosmorales7528 2 года назад

    awesome explanation

  • @xilliman
    @xilliman 3 года назад

    im declaring every variable as const and then change it to let if i have to reassign them. this makes the code much safer. i don’t use var anymore

  • @vikasnigam9646
    @vikasnigam9646 3 года назад

    Gr8 explanation.

  • @andyarellano7474
    @andyarellano7474 3 года назад

    Thank you so much bro.

  • @hanntongfong1226
    @hanntongfong1226 3 года назад

    Great work! 👍

  • @andreastewart6133
    @andreastewart6133 2 года назад

    Helpful. Thank you.

  • @tomschwrs
    @tomschwrs Год назад

    Great Video!

  • @manojarya7676
    @manojarya7676 Месяц назад

    Awesome...😍👍🏻

  • @CineIt
    @CineIt 3 года назад

    Great tutorial, thanks!

  • @53Strat
    @53Strat 3 года назад

    Solid video!

  • @aadityakiran_s
    @aadityakiran_s 2 года назад

    I came from C#. Use var for what you want to change, const for what you don't; variable and constant. Simple language for simple people.

  • @kamalsyed4237
    @kamalsyed4237 4 года назад

    loved it! Thanks.. Const, Let, Var .. it is :)

  • @jousufjacob8251
    @jousufjacob8251 3 года назад

    you are the man ,!

  • @andreas-wismann
    @andreas-wismann 2 года назад

    Great! Suggested topic while you're at it: Semicolons in JS - use or omit?

  • @דודבינימינוב-י5ג
    @דודבינימינוב-י5ג 4 года назад +1

    you are amaizing

  • @RakeshBitling
    @RakeshBitling 3 года назад +1

    can you please cover topic related to redis cache along with aws

  • @surendergaini3365
    @surendergaini3365 2 года назад

    GOOD explaintion

  • @lukevandam7610
    @lukevandam7610 2 года назад

    you should defo do modelling brah. Those some top genes