I first contracted the JavaScript virus 21 years ago, so I'm not exactly new to it. In under 15 minutes you explained everything I found confusing or contrary. It now makes sense. No longer will I think of JavaScript as quirky and insidious. Thank you!
Likewise Mr. L: After 21 years JavaScript is almost unrecognisable in structure and scope. It's not a dirty hack anymore, it is the full-stack/style agnostic/polished hegemonic state of the art.
I began coding with Basic in 1998, used html css sql and python until 2008, then stopped. Now I am trying to learn react, needed that javascript stuff, this video is beyond enlightenment.
Fireship is perfect for me. The videos are brief but comprehensive. This makes them interesting. It also makes them perfect as refreshers. I also get to learn so many new things with every video.
Glaring typo *Primatives* 🐵 - I am aware, but can't fix it now 😭. Also, primitive constructors should have a `new` keyword. String('foo') is the same as 'foo' (literal syntax), but *new String('foo')* is what I was talking about in the video.
I've been writing Javascript for over 9 months so I understand most of the stuff explained in these 3 videos, yet I can not stop watching they are gold. Entertaining and now I understand things that we're blurry in my head or I did not understand at all. Your channel is a gold mine. Keep it up!
The relationship between predators and prey is often described as the balance of nature. While we must survive from the JS and its mutations - frameworks, it must survive from WA itself..
I'm learning JS and I keep running into things saying that Let should only ever designate a local variable and Var should be used for global. But that global variables are dangerous and so only local variables should be used, meaning you would use Let...but that doesn't explain why not use Var? Legit questions because I keep seeing conflicting stuff...
@@tvguideondemand if you are writing js that will not be transpiled (babel or typescript) and usage by legacy browser should be possible you still have to use var. that should be mentioned
@@this_mfr If you have a global variable then it should be declared in such a way that it would remain global even by using the let keyword, otherwise you might want to look into how you're writing your code. Don't use var, let defines variables as god intended lmao
I usually watch everything in at least 2x speed (more often than not around 2.5x). Today I had to watch this video in 0.75x the speed and keep going back and rewatching parts lol. The variables and functions parts were too many new and complex stuff for me (even with all the similarities to Python and C#, which are languages I have studied and used before). Amazing! Quite fun and different way to explain things, thank you!
This is easily the most helpful JS video Ive seen. Many of the concepts Ive been struggling with you touched on, and none of the other JS videos Ive seen even cover JS structure like you do. Thank you for your work.
Great and extraordinary presented knowledge in just 15 minutes. Wow! Keep going! Just suggestion, I noticed that you are really good at using chrome developer tools can you make a video series about that maybe at some point in future?
That's fair. This is more of a primer for concepts you should know eventually. The upcoming videos will revisit specific areas with more focus for beginners
I'm an amateur coder and I've taken several courses, read several Medium articles, etc. but I had never seen a memorable and easy to understand explanation on var vs let/const till now. 👏👏👏 I just repeated to myself "var is bad; let is good; const is even better"
A bit of extra information regarding the logical operators, like `||` (logical or), and `&&` (logical and). They check for truthiness between both values and return either the left or right, depending on the condition. This does not guarantee to return a boolean value, if either of the values aren't boolean. For example, if you're comparing, say, a string value to undefined, if the string is empty, the logical or will always return 'undefined', if the string is not empty, it will return the string. If you expect the value to always be a boolean value, either add a double bang (!!) in front of your expression, or use tenary operators, which can be more readable and easier to understand the outcome of.
Fireship and Honeypot are actual entertaining UA-cam channels for developers... Massive respect for all the effort you put in the process of generating such content ❤️🚀
I always watch your 100 second videos. I watch this not realizing that this was your video and once the video was over, I thought to myself I’ve never heard anyone explain anything as good as you do and lo and behold it was fire ship this whole time you are a God amongst men.
Hey brother, I would like to thank you so much for the amazing ways you explain complex things, I hope you can come up with fast tutorial for lodash library of JavaScrip, I've just started learning machine learning with javaScript, so that library is very important to mastery its functions to use them for converting maths algorithms to javaScript codes.
Awesome video. Clear, concise, and informative, from your words to what you chose to display onscreen. I've been balls deep in Ruby on Rails for the last couple of weeks, and watching this really helped getting my JS brain to wake up. I'm looking forward to checking out more of your content.
Great stuff man! Would've been great if you touched on how the behaviour of hoisting compares with the traditional var keyword and the let and const keywords, specifically with regards to the "temporal deadzone". As a bonus, briefly touch on how mutating objects and array key value pairs affects references to those objects in memory - this still trips me up.
Great video, but you misspoke when it comes to logical-and and logical-or operators. Both operators incorporate a short-circuit logic and can return the object itself. For example: 0 && 1 returns 0, and 1 && 2 return 2, not actually returning true or false.
i thought... "ou wow... a compact javascript course in just round about 15minutes, nice" then i checked the playing speed of the video, and after that i reduced it to (in my opinion) normal speed... i finished it just yesterday, 8 Month later 😆👍
10:40 "a closure is a function within a function" No, it's not that. A closure is a context within a context, it had nothing to do with functions. Apart from that small mistake, very good JS introduction 👍
Your videos are awesome! Even some experienced devs can learn from them. Do you happen to learn something when you are making these videos or are you some kind of god that already knew all of this beforehand?
It's worth noting that the switch statement used to be ill-advised a LONG time ago, that was during the days when javascript was executed line-by-line and switch statements were very slow. In the modern world javascript is compiled and switch statements don't cost any performance or time. I bring this up because you'll still see mentions here and there not to use it when searching Google or reading books. Ignore them, that was during the old-era Javascript back in the stone ages.
My first contact with Java Script (JS) was in 1997, it blew me away with its possibilities, but I never got into it as a day job, I remember working with Delphi instead in the late 90's. The biggest blunder in JS for me was not having types optionally, typed languages are much faster and potentially much safer.
Js is crazy! frequently catch myself thinking: whats is going on here?! mostly is the async stuff, this video more than anything has teach me to take it easy - it's not just me, there is a lot of people trying to make sense out of it... let's laugh about it😁
I'm pretty 'primitive' when it comes to this topic so either spelling works for me! Thanks Jeff! I really appreciate this beginner, back-to-basics course on JS. Love'n it mate!
A perfect video for revisiting JS concepts but those out there learning JS for the first time, don't get overwhelmed. Just read what I said in first sentence.
Thanks for a great video! I’ve learning JS for almost a month and I am trying to wrap my head around it when it comes to applying it to real world projects
I liked javascript when I was learning it, possibility to do simple code and run it on any computer with browser, nice... but now I'm more experienced with it and I love it :D it's awesome language and yet so simple... if not using frameworks :3
me in my head: "damn what is this plugin that shows the value of the code on the right in blue?" jeff literally one second later: "and just for those who are wondering, the plugin is Quokka for vscode"
Homerun tutorial. Just learned about closures myself. Did not know about hoisting. Did not know that var leaked to the parent scope. You did put call, bind, apply at the beginning, so I was expecting that. Minor compared to the rest of the video's quality.
The worst part is when you get to maintain a legacy code that you discover that the last developer scattered js across dozens of files, following zero patterns and mixing dozens of libraries that does almost nothing. I swear to God if I find that dude ever again I will go to jail
Like so people can see this! 0:00 Intro 0:53 Chapter 1: How to run JS code 2:20 Chapter 2: Primatives and Objects 3:57 Chapter 3: Control Flow - Truthy Falsy 6:38 Chapter 4: Variables 8:01 Hoisting 9:19 Chapter 5: Functions 10:11 Higher Order Functions 11:58 Chapter 6: Objects 12:38 What the hell is THIS?!?! 14:10 Outro
I also think it worth mentioning named functions vs anonymous functions and how it can affect debugging output. If you're defining functions without a name (either, `map(() => {})`, or `map(function () {})`), these functions will show up as `anonymous` in the stack traces. This can make it substantially harder to debug, so it's recommended that you always name your functions: For arrow functions, `let foo = () => {}` and for normal functions, `function foo() {}`. A bit of a deal breaker with arrow functions is that you can not name it at self-declaration time, whereas normal functions, you can: ``` map(toMonkey = (animal) => {}); // This will not work map(function toMonkey(animal) {}); // This will work ``` For arrow functions, you can declare them before referencing them: ``` const toMonkey = (animal) => {}; map(toMonkey); ```
browsers are getting better at throwing more informative call stacks for debugging purposes, so naming anonymous functions may not be as needed as before
Geez, I did not know that the two function declarations on an object had different bindings. That's just messed up. Thanks, I learned something today (that made me feel ill...)
the "this" inside arrow function does not mean the global object.. it is the parent object. e.g. the "function a" object if the arrow function is defined inside another function named "a", and the window object if the arrow function is defined globally. Still a very great tutorial.
People keep saying Javascript is weird and nightmarish,but honestly I know almost everything about it and understand it really well aside from module stuff and sometimes forgetting which method did what, but I do understand it so idk why people are so scared of it lmaoo
I've just been watching random JS videos from Fireship, and I just realized I'm 3 episodes into a series. I"M ALREADY LOST BOYS, JAVASCRIPT HAS WON. CARRY ON WITHOUT ME.
Functions being treated as objects is called "Being a first class citzen" in programming terminology. Any language that treats functions as first class citzens, means that functions can be assigned and returned, like objects. The more you know!
Who knew a tutorial could be this entertaining :P
haha i know
i just said broooo and left :D couldn't handle it man
Lol
That's a 45 minutes in a nutshell.
3txx xx xxx xx ttx🇦🇴🇨🇮🇧🇮🇧🇯📶🔉📟
R
Xezrzñpp
I first contracted the JavaScript virus 21 years ago, so I'm not exactly new to it.
In under 15 minutes you explained everything I found confusing or contrary. It now makes sense.
No longer will I think of JavaScript as quirky and insidious.
Thank you!
Likewise Mr. L: After 21 years JavaScript is almost unrecognisable in structure and scope. It's not a dirty hack anymore, it is the full-stack/style agnostic/polished hegemonic state of the art.
@@noscreadur use Typescript though...
I began coding with Basic in 1998, used html css sql and python until 2008, then stopped. Now I am trying to learn react, needed that javascript stuff, this video is beyond enlightenment.
same
it still doesnt make sense lol, but at least you understand it now
Fireship is perfect for me. The videos are brief but comprehensive. This makes them interesting. It also makes them perfect as refreshers. I also get to learn so many new things with every video.
Don't change anything on how you are doing this. Awesome quality content
Never seen a more intense JS tutorial before
Glaring typo *Primatives* 🐵 - I am aware, but can't fix it now 😭. Also, primitive constructors should have a `new` keyword. String('foo') is the same as 'foo' (literal syntax), but *new String('foo')* is what I was talking about in the video.
Np, you can perhaps add annotations.
@ I would, but that's not possible on UA-cam anymore.
Yikes ...
In a nut shell js is intuitive and crazy at the same time.
its nice to watch this kind of video when u're not in ur desk, resting, and just wondering about the world.
I've been writing Javascript for over 9 months so I understand most of the stuff explained in these 3 videos, yet I can not stop watching they are gold. Entertaining and now I understand things that we're blurry in my head or I did not understand at all. Your channel is a gold mine. Keep it up!
The relationship between predators and prey is often described as the balance of nature.
While we must survive from the JS and its mutations - frameworks, it must survive from WA itself..
I'm blown away by how high quality this channel is !
The times when I used JavaScript I mainly used Canvas API because making games is what's always got me interested.
"You should respect the legacy of var but never use it."
Why do I feel like you're not even being ironic about this.
Why would he be ironic? Is there any legitimate reason to use var in 2020?
@@tvguideondemand ignorance
I'm learning JS and I keep running into things saying that Let should only ever designate a local variable and Var should be used for global. But that global variables are dangerous and so only local variables should be used, meaning you would use Let...but that doesn't explain why not use Var?
Legit questions because I keep seeing conflicting stuff...
@@tvguideondemand if you are writing js that will not be transpiled (babel or typescript) and usage by legacy browser should be possible you still have to use var. that should be mentioned
@@this_mfr If you have a global variable then it should be declared in such a way that it would remain global even by using the let keyword, otherwise you might want to look into how you're writing your code. Don't use var, let defines variables as god intended lmao
I usually watch everything in at least 2x speed (more often than not around 2.5x). Today I had to watch this video in 0.75x the speed and keep going back and rewatching parts lol. The variables and functions parts were too many new and complex stuff for me (even with all the similarities to Python and C#, which are languages I have studied and used before). Amazing!
Quite fun and different way to explain things, thank you!
The explanation of the Closures and its comparison to the functions might be the best I have heard on UA-cam
This is easily the most helpful JS video Ive seen. Many of the concepts Ive been struggling with you touched on, and none of the other JS videos Ive seen even cover JS structure like you do. Thank you for your work.
As a long time developer who has not touched the web for 15 years this is the perfect bootstrap into JavaScript language. Thanks!
10:40 "Closures" and 12:40 "this".
Very well explained 👍. Thank you 🙏.
The best thing that had happened to me after becoming a junior js developer, is finding this channel.. I'm learning a lot from you!! Thank you!
Bro this is the best coding channel I learn a lot in a really entertaining way. This makes me think University is truly dead
Great and extraordinary presented knowledge in just 15 minutes. Wow! Keep going!
Just suggestion, I noticed that you are really good at using chrome developer tools can you make a video series about that maybe at some point in future?
Great idea, that would make a good module for this course.
Please put a disclaimer that this is not a beginners course, as most beginners would be highly overwhelmed by this (pun not intended).
That's fair. This is more of a primer for concepts you should know eventually. The upcoming videos will revisit specific areas with more focus for beginners
console.log(this); // "The Javascript Survival Guide"
Fireship Thanks Thanks Thanks liked and subscribed!! Nice content! :)
This is pretty much beginner stuff though...
@@ArnoldsKtm Closures !== beginner stuff
Your content is perfect: pace, humour , rigour , no wonder you're ranked as the best.
I'm an amateur coder and I've taken several courses, read several Medium articles, etc. but I had never seen a memorable and easy to understand explanation on var vs let/const till now. 👏👏👏 I just repeated to myself "var is bad; let is good; const is even better"
im gonna watch this video every morning, when you compared closure and object oriented, you won a medal, and + 1000xp
I've had from little to none experience in js but I understood everything from this video. Now I am feel a bit more confident about js.
A bit of extra information regarding the logical operators, like `||` (logical or), and `&&` (logical and). They check for truthiness between both values and return either the left or right, depending on the condition. This does not guarantee to return a boolean value, if either of the values aren't boolean.
For example, if you're comparing, say, a string value to undefined, if the string is empty, the logical or will always return 'undefined', if the string is not empty, it will return the string.
If you expect the value to always be a boolean value, either add a double bang (!!) in front of your expression, or use tenary operators, which can be more readable and easier to understand the outcome of.
I love the quality of these videos. It combines the humor and entertainment of media essays and commentaries and the objectivity of programming.
This is gold for those who have some experience in other languages.
" what the hell is 'this'? " Your rhetoric in this video is on point. Bravo!
I have no words to describe how amazing this video is.
Thank you so much for making this art piece.
Thank you Maverick!
Fireship and Honeypot are actual entertaining UA-cam channels for developers... Massive respect for all the effort you put in the process of generating such content ❤️🚀
I always watch your 100 second videos. I watch this not realizing that this was your video and once the video was over, I thought to myself I’ve never heard anyone explain anything as good as you do and lo and behold it was fire ship this whole time you are a God amongst men.
BY FAR the best code tutorial on the entirety of UA-cam. lol this video deserves some kind internet award
You explain in 14:46 Minute video what people takes 5 to 6 hours. Big Fan Fireship. Entertainment + Knowledge. Wish This video could be 1 hour long.
Hey brother, I would like to thank you so much for the amazing ways you explain complex things, I hope you can come up with fast tutorial for lodash library of JavaScrip, I've just started learning machine learning with javaScript, so that library is very important to mastery its functions to use them for converting maths algorithms to javaScript codes.
I had no idea people still used lodash. What do you use it for?
what resources are you using to learn ML with javascript. i'm also curious about ML,but not very keen to learn python for it.
I am new to JS and studied some fundamentals for a week ,this is a perfect revision for me! Thanks!
Awesome video. Clear, concise, and informative, from your words to what you chose to display onscreen. I've been balls deep in Ruby on Rails for the last couple of weeks, and watching this really helped getting my JS brain to wake up. I'm looking forward to checking out more of your content.
Great stuff man! Would've been great if you touched on how the behaviour of hoisting compares with the traditional var keyword and the let and const keywords, specifically with regards to the "temporal deadzone".
As a bonus, briefly touch on how mutating objects and array key value pairs affects references to those objects in memory - this still trips me up.
Great video, but you misspoke when it comes to logical-and and logical-or operators. Both operators incorporate a short-circuit logic and can return the object itself.
For example: 0 && 1 returns 0, and 1 && 2 return 2, not actually returning true or false.
Hi do you work in js
Please share your CV, if you don't mind
work42sandeep@gmail.com
It's great that there are multy-hour courses on any-thiing you want. But I can't thank you enough for making this short, dence videos
I never imagined I will binge watch programming tutorial
i thought... "ou wow... a compact javascript course in just round about 15minutes, nice"
then i checked the playing speed of the video, and after that i reduced it to (in my opinion) normal speed... i finished it just yesterday, 8 Month later 😆👍
10:40 "a closure is a function within a function" No, it's not that. A closure is a context within a context, it had nothing to do with functions.
Apart from that small mistake, very good JS introduction 👍
But newbies won't understand what context means.
@@exactzero I think of it as the movie Inception
This has to be one of the most fun, clear, concise videos that I have ever watched. Great job!
Your videos are awesome! Even some experienced devs can learn from them.
Do you happen to learn something when you are making these videos or are you some kind of god that already knew all of this beforehand?
This is episode 197, I knew basically nothing when I started. Just try to push each one a little further.
Aways if a person asks if u r a God, u say so. " 'course I am. pff"
Duuude... U r blowing it
Lol!
Thank you very much for such nice content.
Never have a been more happy about the ability to play videos at 3/4 speed.
It's worth noting that the switch statement used to be ill-advised a LONG time ago, that was during the days when javascript was executed line-by-line and switch statements were very slow. In the modern world javascript is compiled and switch statements don't cost any performance or time. I bring this up because you'll still see mentions here and there not to use it when searching Google or reading books. Ignore them, that was during the old-era Javascript back in the stone ages.
Thank you. I *finally* actually understand what a closure is.
Fantastic video! Also that "A Few Good Men" reference was perfect 👌
Thanks! That was a last minute addition
I have been doing JS for a few years now, but this video still clears some concepts. Cool!
As someone with coding experience but not much in JS this was a good primer.
Be careful because js running in strict mode might modify some of this behavior, and code is sometimes implicitly run in strict mode.
My first contact with Java Script (JS) was in 1997, it blew me away with its possibilities, but I never got into it as a day job, I remember working with Delphi instead in the late 90's.
The biggest blunder in JS for me was not having types optionally, typed languages are much faster and potentially much safer.
The perfect video for a JS interview. Nice stuff.
Hi do you work in js
Please share your CV, if you don't mind
work42sandeep@gmail.com
I had a lot of doubts regarding these things in JavaScript. Thanks for making this video. Now I have some idea about it. 😅
Somebody: "I hate your style of teaching for free on the internet"
Fireship: *Hearted*
Js is crazy! frequently catch myself thinking: whats is going on here?!
mostly is the async stuff,
this video more than anything has teach me to take it easy - it's not just me, there is a lot of people trying to make sense out of it... let's laugh about it😁
I'm pretty 'primitive' when it comes to this topic so either spelling works for me! Thanks Jeff! I really appreciate this beginner, back-to-basics course on JS. Love'n it mate!
You are the Web Developer Survival Channel!
I feel like JS is the Doge of programming languages, a meme at first but ended up becoming super popular 😂
Nice and succinct. I prefer it this way where if I miss something I just go back 10 seconds or pause.
A perfect video for revisiting JS concepts but those out there learning JS for the first time, don't get overwhelmed. Just read what I said in first sentence.
Hi do you work in js
Please share your CV, if you don't mind
work42sandeep@gmail.com
So glad I found this channel. Your videos are Gold mate!
Thanks for a great video! I’ve learning JS for almost a month and I am trying to wrap my head around it when it comes to applying it to real world projects
I liked javascript when I was learning it, possibility to do simple code and run it on any computer with browser, nice... but now I'm more experienced with it and I love it :D it's awesome language and yet so simple... if not using frameworks :3
me in my head: "damn what is this plugin that shows the value of the code on the right in blue?"
jeff literally one second later: "and just for those who are wondering, the plugin is Quokka for vscode"
Thank you I was sick of finding beginners only tutorials
Homerun tutorial. Just learned about closures myself. Did not know about hoisting. Did not know that var leaked to the parent scope.
You did put call, bind, apply at the beginning, so I was expecting that. Minor compared to the rest of the video's quality.
This is one of the best web development channels on UA-cam
Hi do you work in js
Please share your CV, if you don't mind
work42sandeep@gmail.com
The worst part is when you get to maintain a legacy code that you discover that the last developer scattered js across dozens of files, following zero patterns and mixing dozens of libraries that does almost nothing. I swear to God if I find that dude ever again I will go to jail
Late reply, but that was hilarious! I wonder what company would hire someone like that lmfao XD
Damnnn I love the sound effects, though comedic, with good mood still give you the chills!
Good explanation for those already into js .Making those abit harder concepts abit clearer.
Finally things I can use that aren't elementary! Thanks!
You rock Fireship!....learning curve is smooth...your videos are helful
The price tag on Quokka.... LOL! Are they insane?
Like so people can see this!
0:00 Intro
0:53 Chapter 1: How to run JS code
2:20 Chapter 2: Primatives and Objects
3:57 Chapter 3: Control Flow - Truthy Falsy
6:38 Chapter 4: Variables
8:01 Hoisting
9:19 Chapter 5: Functions
10:11 Higher Order Functions
11:58 Chapter 6: Objects
12:38 What the hell is THIS?!?!
14:10 Outro
Thank you
First time I understood closures 😂 Thank youuuuu 🙏🏻
All I gotta say is: thank goodness for UA-cam's .75 Playback speed! Although it makes you sound like a drunk, yet very lucid, JS expert.
I'm a total JavaScript beginner but I get 80% of what you says since I have 1 year experience in C
Dude! You really make the best videos! This is awesome !
Thank you. A really comprehensive video, it filled many gaps I had. Waiting for the new ones!
Best Serie ever . i never thought that javascript was that complecated and easy at the same time
You just make the learning so interesting. Thanks for the videos
is hard for them to sink in, but this is probably one of the best collection
I also think it worth mentioning named functions vs anonymous functions and how it can affect debugging output. If you're defining functions without a name (either, `map(() => {})`, or `map(function () {})`), these functions will show up as `anonymous` in the stack traces. This can make it substantially harder to debug, so it's recommended that you always name your functions: For arrow functions, `let foo = () => {}` and for normal functions, `function foo() {}`.
A bit of a deal breaker with arrow functions is that you can not name it at self-declaration time, whereas normal functions, you can:
```
map(toMonkey = (animal) => {}); // This will not work
map(function toMonkey(animal) {}); // This will work
```
For arrow functions, you can declare them before referencing them:
```
const toMonkey = (animal) => {};
map(toMonkey);
```
browsers are getting better at throwing more informative call stacks for debugging purposes, so naming anonymous functions may not be as needed as before
Geez, I did not know that the two function declarations on an object had different bindings. That's just messed up. Thanks, I learned something today (that made me feel ill...)
the "this" inside arrow function does not mean the global object.. it is the parent object. e.g. the "function a" object if the arrow function is defined inside another function named "a", and the window object if the arrow function is defined globally. Still a very great tutorial.
After the video, I know I will keep my compure like the gentleman in the end.
Really good content. That is my only comment for the year 2019 but you really did a good job with editing and straight to the point explanation
wow, how could you explain such complex stuff in such simple words. admirable
People keep saying Javascript is weird and nightmarish,but honestly I know almost everything about it and understand it really well aside from module stuff and sometimes forgetting which method did what, but I do understand it so idk why people are so scared of it lmaoo
This man going to be big
Very good job! I'd recommend this video for higher than beginner JS programers or for programers coming from other languages. 🙂
top 3 best coding UA-cam channels.
suscribed and in an infinite smashing the like button loop.
thx to Fireship my transformation to a JS developer is one step further... grrwaawhhraah
The shortest JavaScript tutorial Ever 🤩
Being a java developer, SOME of the syntax is exactly the same so it’s much easier to understand
I've just been watching random JS videos from Fireship, and I just realized I'm 3 episodes into a series.
I"M ALREADY LOST BOYS, JAVASCRIPT HAS WON. CARRY ON WITHOUT ME.
Functions being treated as objects is called "Being a first class citzen" in programming terminology. Any language that treats functions as first class citzens, means that functions can be assigned and returned, like objects.
The more you know!
Terrific video; there is so much JavaScript condensed into a quick 15min video!
One nitpick though... it’s spelled “primitive” not “primative”. 😉