The Complete Guide to JS Symbols ES6

Sdílet
Vložit
  • čas přidán 22. 07. 2024
  • In this video I cover the new-ish primitive type: Symbols! What are they? How does they work? When would you use them? Towards the end of the video I show three different use cases/examples of Symbols in action. To help decide on future video topics, make sure to subscribe and turn on notifications!
    If you're ready to launch your career as a software engineer, check out my job-guaranteed bootcamp with Springboard: springboard.com/workshops/sof...
  • Věda a technologie

Komentáře • 132

  • @dave_ynh
    @dave_ynh Před 5 lety +88

    It's just me, or every time when you watch a video lesson from Colt Steele - you smile?
    Colt, you are the second teacher in my life who:
    1) brilliantly delivers the material
    2) dilutes it in time with jokes so that brains don't boil.
    I think that's what talent is.
    And if someone doesn't take my word for it...
    Well, Ask me anything you want and I will answer without hesitation: Rusty is the sweetest and most amazing dog in the world!:)
    Thank you very much for your work, Colt!
    (P.S. Sorry for the possible clumsiness of my English. I'm working on it.)

  • @SyedAli-kr6qw
    @SyedAli-kr6qw Před 4 lety +5

    To me personally JS is a monster and this teacher tames it like a badass. Listening to his videos is a joy not a mess.

  • @CrimsonJoker641
    @CrimsonJoker641 Před 5 lety

    Liked, commented, and subscribed. All the other videos on CZcams on this topic made my head spin. But as soon as I come to yours, all the sudden it makes sense. Please never stop making videos, you really got a talent and I can see why you are a teacher!

  • @Shubham-b
    @Shubham-b Před 5 lety +5

    Colt, anything that you teach is just a blessing for us. Glad you are bringing out more content. I would love if you could make some more substantial project videos like Yelpcamp!

  • @imtanuki4106
    @imtanuki4106 Před rokem +3

    Beautiful - the ONLY video lesson on Symbols that actually explains understandable use cases. Well done!

  • @sergeycleftsow4389
    @sergeycleftsow4389 Před 5 lety

    This video is just splendid! I literally have killed half of my day trying to find out a real explanation why symbols can be indispensable. There are lots of resources attempting to reveal this but it seems they are not able to figure out the core problem preventing to realize the subject. Fortunately, this is the exact place to obtain such knowledge. It is told very simple, but logically and intelligently. +1000! Colt is a great teacher, indeed! :)

  • @alveek
    @alveek Před 5 lety +1

    The most popular videos are like "what you need to become a web developer in 2019?" or "Which framework to use".
    But your content is quite unique so far. Thank you.

  • @russellabraham9208
    @russellabraham9208 Před 4 lety

    This is great, thank you! Was just catching up on your youtube videos and wondered if you might cover multithreading with web workers.

  • @mustafaalfar7936
    @mustafaalfar7936 Před 4 lety

    Brilliant explanation Colt,
    we need the second video on Syboml :)

  • @shashanknigade3662
    @shashanknigade3662 Před rokem

    Very informative, helped me understand the concept very easily, especially with the examples.

  • @anton4488
    @anton4488 Před 6 měsíci

    The best video on Symbols! Thank you!

  • @FrankLi92
    @FrankLi92 Před 5 lety

    Hey Colt, I bought both your web dev courses and the javascript data structures course. Really liking it so far. As I'm preparing for interviews with Leetcode and such, I do find myself wanting more content that teaches more how to solve various problems. You gave some nice strategies like sliding window, but if anyone can help fundamentally change how I approach problems, it would be you. If you can do more advanced content with that in mind, that'd be great! Afterall, besides projects, the algorithm-intensive tests are generally what stands between a candidate and a new job. Cheers, mate!

  • @EdgyVidyaGeneral
    @EdgyVidyaGeneral Před 5 měsíci

    Great video, thank you.
    3:06 it's almost remarkable that your random numbers were so similar

  • @theprogramminggoat1859

    Good job explaining this Colt

  • @squidneyj7097
    @squidneyj7097 Před 5 lety

    Thank you

  • @000djw000
    @000djw000 Před 2 lety

    Suddenly, I get it. Perfect. The example for me was the error handler.

  • @linoymiz22
    @linoymiz22 Před 23 dny

    You explained that very well thank you very much! keep up the good work :)

  • @ShirazEsat
    @ShirazEsat Před 4 lety +2

    Thanks! Symbols would be useful when setting up ActionTypes in React Redux. Guarantees we are using the right "thing" and avoids sloppy coding.

  • @vitaliyd23
    @vitaliyd23 Před 5 lety

    Great video colt keep it up!

  • @Me-ik9pj
    @Me-ik9pj Před 4 lety

    Thanks Colt ! Doing a Great Job

  • @Mohammed-nr8ys
    @Mohammed-nr8ys Před 5 lety +2

    hi colt , i am near to finish the web developer bootcamp . i want to see video that you teaching us how to be very good developer ( what is the thing we do , the mistakes in coding ) thanks colt i learned so much from you , you realy are the best thanks a lot

  • @egorshumanskii8026
    @egorshumanskii8026 Před 5 lety

    Colt, tell us please the pros and cons of using relational and non-relational databases. Some sort of comparison. Especially Describe a decision-making process when i should use relational or non-relational DB. Thanks!

  • @jeinernoriega7910
    @jeinernoriega7910 Před 5 lety +1

    Hi colt, can you do a video about microservices? What they are and how they fit into the whole picture?

  • @ViciousViscount
    @ViciousViscount Před 2 lety

    You're my favorite nerd. Your content is always so fucking high quality.

  • @ciceroaraujo5183
    @ciceroaraujo5183 Před 4 lety

    You are a really good teacher

  • @apall2764
    @apall2764 Před 5 lety +1

    Colt I desperately need that other video about the "well-known" Symbols

  • @keemeshrampersad8859
    @keemeshrampersad8859 Před 5 lety

    Hi Colt, any idea as to when you will release a full responsive website course from frontend to backend?

  • @mhezzetjr
    @mhezzetjr Před 4 lety

    hi thanx for the video, can u plz tell me the theme and code formater u use?

  • @rohanshenoy8353
    @rohanshenoy8353 Před 5 lety

    Colt I've taken alot of your courses on udemy..Love your contents. Can you add more on your web developer boot camp, that covers the latest Javascript content or post it here.

  • @joshualevan
    @joshualevan Před rokem

    would you opt for Symbol() for an id/ key over downloading a library like uuid for React?

  • @gokharol
    @gokharol Před 3 lety

    Upvoted at 2:50 thank you!!! 🙏

  • @naveedalirehmani2959
    @naveedalirehmani2959 Před 3 lety

    Can anyone please tell me what theme he is using on visual studios

  • @devashishbahri3353
    @devashishbahri3353 Před 4 lety

    can anyone pls tell the name of the VSCode color scheme (or theme) that is used in this tut?

  • @confuseduck227
    @confuseduck227 Před 4 lety

    when i use $ inside ' ' or " " it doesn't wor ks as a string only and not as a function can you help me resolve it

  • @yyydollars8456
    @yyydollars8456 Před 5 lety

    Hi Mr Colt
    I'm New at these things and I was wondering if *THE WEB DEVELOPER BOOTCAMP* course will make me build website with the ability to put live streams in it just for one guy

  • @aymanayman9000
    @aymanayman9000 Před 4 lety

    So is symbol is just ram address or struct with address and label

  • @lucio2081
    @lucio2081 Před rokem

    great vid!

  • @amberdawn6793
    @amberdawn6793 Před 4 lety

    Hi, would you mind clarifying something for me please? Around 5 min you show an example of using symbol for a user object and manually set the ID or symbol value. Did you just do this to help us visualize what it would look like or should we actually be hard coding a new symbol each time. I thought invoking symbol() automatically creates a value like 31515461564 without you actually having to do anything else. Please and thanks!

  • @karansinghnegi9384
    @karansinghnegi9384 Před 4 lety

    Just one question , what if the third party code has [id] = 123 , Symbol in it.
    And we are doing , user[id] = 23 , This will still overwrite their Symbol. Isn’t it ? So Whats the benefit

  • @heretoinfinity9300
    @heretoinfinity9300 Před 4 lety

    What tool is he using on the right?

  • @bolajahmad
    @bolajahmad Před 4 lety

    Why does the object property not log in the order it was written in when you console.log it, I mean it doesn't exactly change the object data but I would expect it to log the exact the same order and way you wrote it, I'm talking about 5:07.

  • @SuperQuwertz
    @SuperQuwertz Před 2 lety

    How do you auto format the object so nicely? :D

  • @jucoallison5741
    @jucoallison5741 Před 4 lety

    how can i get users signature in my website

  • @boopfer387
    @boopfer387 Před 3 lety

    Q: can we use symbol's for unique keys in React without having to rely on UUID or some other NPM package? I guess I could answer my own question by giving it a whirl..

  • @christopherli2827
    @christopherli2827 Před 5 lety

    Do you have an upcoming course Colt?

  • @AnweshAdhikari
    @AnweshAdhikari Před rokem

    Informative!

  • @mostafagh3573
    @mostafagh3573 Před 2 lety

    good lesson, thank u

  • @rachview
    @rachview Před rokem

    Thank you!

  • @maorben3313
    @maorben3313 Před 2 lety

    So its like uid() ?

  • @moneyharry
    @moneyharry Před 4 lety

    The video is amazing.
    where is another part?

  • @RogerThat902
    @RogerThat902 Před 5 lety +9

    Are symbols a good candidate for React development when you need a unique ID? Awesome explanation, thanks!

    • @JoseNavas
      @JoseNavas Před 4 lety +1

      I was wondering the same, like could we use them as key properties ?

    • @The14Some1
      @The14Some1 Před rokem +1

      @@JoseNavas The main downside for this particular usecase is that symbols are not serializable, so whenever you would want to send them (via network or so) it will be problematic.
      The another disadvantage is that they are not very human-readable, and there is no way you can distinguish two symbols with "listItem" description whatsoever.

    • @balls2thewall724
      @balls2thewall724 Před 10 měsíci

      it's better to use meaningful information as keys, such as the index or actual id from data source

  • @frownless
    @frownless Před 5 lety

    In 8:47 why does the switch statement work when BLUE is all caps but u passed in small letters?

    • @joeymdye
      @joeymdye Před 5 lety

      Because the switch statement is checking to see if the value of color is equal to the value that was stored in variable BLUE, which was 'blue'. The value of cat was also 'blue', so both inputs were outputting the same response, which is why he used a symbol, so the value of variable BLUE would be unique. This threw me off at first as well.

  • @erykczajkowski8226
    @erykczajkowski8226 Před 2 lety

    What is the VS Code color theme that you used here? :)
    I'm not thrilled with the use of Symbols as property names/references, as you need to constantly store the instance of the symbol to be able to access the property which does not seem convenient at all... You'd have to use the Symbol.for() to be able to access the properties in a more general way, which however you did not do in the examples.

  • @evenaicantfigurethisout
    @evenaicantfigurethisout Před 3 lety +1

    8:54 this is a very useful use case, but how did getthreatlevel function know you intend to use Symbols as opposed to just plain strings?

    • @UsernameUsername0000
      @UsernameUsername0000 Před rokem

      Two years late, but the switch cases test the function input against the Symbols defined (RED, ORANGE, etc). The string ‘blue’ is not the same as the BLUE switch case which refers to Symbol(‘blue’).

  • @theway5258
    @theway5258 Před 4 lety

    Thanks, bro!

  • @a21871
    @a21871 Před 2 lety

    Thank you :)

  • @yassine_klilich
    @yassine_klilich Před 5 lety

    realy well explained video (y)

  • @stevenedwards8353
    @stevenedwards8353 Před rokem

    Where is the Iterators and Well-known Symbols video you promised?

  • @hamedelahifar7472
    @hamedelahifar7472 Před rokem

    Please, Please, Please,
    how did you do "vertical alignment"?
    it seems you are using "prettier"

  • @husainahmmed9025
    @husainahmmed9025 Před 5 lety

    Thank you

  • @johnconnor9787
    @johnconnor9787 Před 2 lety

    If the Symbol() always unique, why did we assign value manually?
    Why it is not like:
    const obj = {id: Symbol()}

  • @miunify
    @miunify Před 4 lety

    Wait so we can use Symbol() for react keys?

    • @ShirazEsat
      @ShirazEsat Před 4 lety

      I was wondering the same thing, or whether it's an anti pattern. I think it would be more correct to add it to the objects that you are iterating, rather than directly as the keys property. That is, keys=obj.id, where id is set to Symbol()

  • @aniket-kulkarni
    @aniket-kulkarni Před 5 lety

    Fantastic

  • @sb9185
    @sb9185 Před 2 lety

    Thanks a lot 🇰🇿

  • @Retrofire-47
    @Retrofire-47 Před rokem

    it seems like much of this behavior has changed? at least in August of 2022 i cannot define a Symbol property using the square brackets, nor are Symbol primitives hidden from the console output...

  • @zaraczkizaraczki1755
    @zaraczkizaraczki1755 Před 5 lety

    .... thanks for the video...🤗

  • @shapelessed
    @shapelessed Před rokem

    Gotta say, I've been using JS for 4 year already and never had the need to use symbols until I started an embedded db project...

  • @ChrisFotosMusic
    @ChrisFotosMusic Před 3 lety

    hey bro can you do tagged templates

  • @420_gunna
    @420_gunna Před 5 lety +3

    I really like the Traversy series on "JS Cardio" -- running through those has been an _awesome_ way to learn and build muscle memory. I wish there were more videos of a similar format on CZcams -- what do you think about the format?

    • @ColtSteeleCode
      @ColtSteeleCode  Před 5 lety +1

      Hey Sam, definitely a fan of those short exercises and activities. I really like the name JS Cardio...I'll have to find something equally catchy :)

  • @romikonlinepotapenko3475

    What if I define the length property inside the constructor using Object.defineProperty() method and make it not enumerable?:
    class Train {
    constructor(){
    Object.defineProperty(this, "length", {
    enumerable: false,
    value: 0,
    writable: true
    });
    }
    add(car,contents){
    this[car] = contents;
    this.length++;
    }
    }

    • @The14Some1
      @The14Some1 Před rokem

      or simply use the subsequent "items" array property to store cars, as everyone do.

  • @hardikganatra2453
    @hardikganatra2453 Před 3 lety

    Legend !!

  • @karthikeyan-hz8sw
    @karthikeyan-hz8sw Před 3 lety

    Yes!

  • @johnrock174
    @johnrock174 Před 4 lety

    The mustache joke. Nice. :-) And where's blue been?

  • @dotanshlichta4348
    @dotanshlichta4348 Před 4 lety

    oh you were sick, yeah i know the feeling, catchind a liddle colt

  • @hemangshrimali6308
    @hemangshrimali6308 Před 4 lety

    Please make video on Fetch Api

  • @satya4866
    @satya4866 Před 3 lety

    Nice

  • @LuizOtavio-lr7kc
    @LuizOtavio-lr7kc Před 8 měsíci

    It would be problematic if I needed to save the Symbol of any item in the database. Considering this, I reached the conclusion that this feature is intended to be used during the lifecycle of the operation since we don't have access to the identifier that distinguishes each Symbol.

  • @jamjam3448
    @jamjam3448 Před 4 lety +1

    I don't know why your switch statement didn't have the "break" keyword.

    • @zanqwq9257
      @zanqwq9257 Před 4 lety +1

      just called "return", no need to "break"

    • @jamjam3448
      @jamjam3448 Před 4 lety +1

      @@zanqwq9257 Oh yes. I've understood it now. Thanks.

  • @antonytomy7215
    @antonytomy7215 Před 3 lety

    nice

  • @bhavikakapadia2462
    @bhavikakapadia2462 Před 5 lety +4

    Hi Colt
    When is your react course coming out?

  • @ayoobsaad
    @ayoobsaad Před 3 lety

    The last example was not easy at all, I'm struggling with it now, and I'm not sure if I'll be able to understand it or not.

  • @jacobgasser3093
    @jacobgasser3093 Před 5 lety +1

    *uses VSC*
    Me: *likes and subscribes*

  • @zealousprogrammer4539
    @zealousprogrammer4539 Před 5 lety

    Steele & Wes bos are highly respected for JS dev: I would like you to kindly answer a question that intrigue me, Why Rubi programming is so overlooked ? I don't get it why we let it die just to copy it's features ? Symbol, Map, Filter, template literals [Ruby: #{} ] and many others, I am a newbie so excuse my ignorance under the hood there may be a deep reason why JAVA and JS are still maintained... Because every new ft introduced in these languages were already in Rubi since 95 built in.

    • @aymanayman9000
      @aymanayman9000 Před 4 lety

      Well Ruby is kinda of weird languages and. The features you mention is in python also to be honest there's something about Ruby syntax make it weird for me js is the worst famous languages it's crazy but they enforced to teach it cause it's the only language in the browser but I prefer to write code in js than Ruby it's elegant but in a strange way but if you like it then go with it I thought nk in USA they have demand on it

  • @ShujathHussain0
    @ShujathHussain0 Před 5 lety +2

    your JS masterclass course in udemy is lot lot better than a university education

  • @JesustheSaviour311
    @JesustheSaviour311 Před 2 lety

    👍

  • @mehrshad-moradshan9670

    👌🏻👌🏻👌🏻👌🏻👌🏻

  • @jl-dq5ch
    @jl-dq5ch Před 3 lety

    you had me a mustashe

  • @alexblue8524
    @alexblue8524 Před 4 lety +3

    I can't understand this syntax: this[something]

    • @moneyharry
      @moneyharry Před 4 lety

      *"this"* represents the object it is currently in or belongs to.
      And this[something] is the same as this.something, but this approach is used when the property name is dynamic.

    • @maxp918
      @maxp918 Před 4 lety

      Research javascript square brackets vs dots notation
      czcams.com/video/D_ESB34x-Wo/video.html

    • @Daniel_WR_Hart
      @Daniel_WR_Hart Před 4 lety

      @@moneyharry I think you mean this["something"] is the same as this.something

    • @moneyharry
      @moneyharry Před 4 lety

      @@Daniel_WR_Hart "something" could be a variable that holds some string value, but if it is a string itself then you have to use quotes

    • @Daniel_WR_Hart
      @Daniel_WR_Hart Před 4 lety

      @@moneyharry I know, I just didn't think it was clear from your example if 'something' was a constant string or a variable named 'something' but that had a different implied string value.

  • @Skorm88K
    @Skorm88K Před 4 lety

    PLEASE I BEG YOU MAKE A VIDEO ON RxJS

  • @tadejdanev5030
    @tadejdanev5030 Před 5 lety

    360p atm?

    • @ColtSteeleCode
      @ColtSteeleCode  Před 5 lety

      Hi Tadej, not sure why it was doing that (I had the same issue on my end) but it looks like it's working now on all resolutions.

    • @FrankLi92
      @FrankLi92 Před 5 lety

      The CZcams servers usually take time to fully allow all the resolutions, despite how hi-def it was originally recorded in.

  • @sproutboot
    @sproutboot Před 4 lety

    Hello

  • @lazymacs2823
    @lazymacs2823 Před 3 lety

    Hey, it's spiderman a web developer

  • @JK99LP
    @JK99LP Před 5 lety

    Damn, I want to see your mustache

    • @ColtSteeleCode
      @ColtSteeleCode  Před 5 lety +1

      I have tried in the past...and let's just say it does not look good. At all. My dad has had a huge mustache for his entire life, but apparently I didn't get that gift :(

    • @JK99LP
      @JK99LP Před 5 lety

      @@ColtSteeleCode I'm kind of in the same situation to be honest... I just don't want to have the skin of a baby on my face :(

  • @veerendhar
    @veerendhar Před 3 lety

    Tom Holland teaching JS

  • @shaan8729
    @shaan8729 Před 4 lety

    You look like Tom Holland 😆😆

  • @abdisamadkhalif4283
    @abdisamadkhalif4283 Před 5 lety +2

    1st comment :)

    • @babatundeololade6765
      @babatundeololade6765 Před 5 lety +1

      Lol

    • @ColtSteeleCode
      @ColtSteeleCode  Před 5 lety +1

      Hi Abdisamad :) Where are you from?

    • @abdisamadkhalif4283
      @abdisamadkhalif4283 Před 5 lety +1

      @@ColtSteeleCode from Somalia, FYI: I've enrolled almost all of your Udemy courses! You're one of my top 5 Udemy instructors provided I've 30+. Thank you so much for your support. :)

  • @Beto64777
    @Beto64777 Před 2 lety +2

    In other words, Symbol, the most useless stupid complicated to get thing ever created. Just I hate it.

    • @Retrofire-47
      @Retrofire-47 Před rokem

      i guess i am just confused about its utility. i thought i could use Symbol primitives really effectively when creating `enum` like data types, but it turns out the Symbol primitive cannot even be converted to a number or string, so it just seems utterly pointless to me atm