The JavaScript Survival Guide

Поділитися
Вставка
  • Опубліковано 14 лип 2019
  • The JavaScript Survival Guide 🧟 provides protection from the so-called "weird" features that you will encounter as a JS developer. This primer will introduce you to variables, functions, objects, closures, hoisting, this-binding, and more. fireship.io/courses/javascript/
    #javascript #tutorial
    Primary source: developer.mozilla.org
    Take the quiz 🤓
    iOS itunes.apple.com/us/app/fires...
    Android play.google.com/store/apps/de...
    Upgrade to Fireship PRO at fireship.io/pro
    Use code lORhwXd2 for 25% off your first payment.
  • Наука та технологія

КОМЕНТАРІ • 709

  • @darshangowda309
    @darshangowda309 5 років тому +1384

    Who knew a tutorial could be this entertaining :P

    • @alejandrocano88
      @alejandrocano88 5 років тому +5

      haha i know

    • @Deskofmj
      @Deskofmj 5 років тому +2

      i just said broooo and left :D couldn't handle it man

    • @diegoruelas603
      @diegoruelas603 4 роки тому +1

      Lol

    • @christianpaul5224
      @christianpaul5224 3 роки тому +5

      That's a 45 minutes in a nutshell.

    • @angelmeza9716
      @angelmeza9716 Рік тому

      3txx xx xxx xx ttx🇦🇴🇨🇮🇧🇮🇧🇯📶🔉📟
      R
      Xezrzñpp

  • @thatnod
    @thatnod 4 роки тому +483

    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!

    • @noscreadur
      @noscreadur 2 роки тому +17

      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.

    • @carlosmspk
      @carlosmspk 2 роки тому +8

      @@noscreadur use Typescript though...

    • @bparlan
      @bparlan Рік тому +5

      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.

    • @willmil1199
      @willmil1199 Рік тому +2

      same

    • @b4ttlemast0r
      @b4ttlemast0r Рік тому +4

      it still doesnt make sense lol, but at least you understand it now

  • @MrDoom159
    @MrDoom159 5 років тому +116

    Never seen a more intense JS tutorial before

  • @whong09
    @whong09 3 роки тому +442

    "You should respect the legacy of var but never use it."
    Why do I feel like you're not even being ironic about this.

    • @tvguideondemand
      @tvguideondemand 3 роки тому +53

      Why would he be ironic? Is there any legitimate reason to use var in 2020?

    • @Neko_Void
      @Neko_Void 3 роки тому +46

      @@tvguideondemand ignorance

    • @this_mfr
      @this_mfr 3 роки тому +16

      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...

    • @MrMontana1990
      @MrMontana1990 3 роки тому +10

      @@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

    • @xyzzy64
      @xyzzy64 3 роки тому +9

      @@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

  • @Fireship
    @Fireship  5 років тому +91

    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.

    •  5 років тому +1

      Np, you can perhaps add annotations.

    • @Fireship
      @Fireship  5 років тому +11

      @ I would, but that's not possible on UA-cam anymore.

    • @modolief
      @modolief 5 років тому

      Yikes ...

  • @nirmalmattmusic3993
    @nirmalmattmusic3993 3 роки тому +23

    In a nut shell js is intuitive and crazy at the same time.

  • @newtonmunene
    @newtonmunene 5 років тому +124

    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.

  • @mel-182
    @mel-182 4 роки тому +9

    its nice to watch this kind of video when u're not in ur desk, resting, and just wondering about the world.

  • @KJMcLaws
    @KJMcLaws 5 років тому +229

    Don't change anything on how you are doing this. Awesome quality content

  • @Andrei-pq6qp
    @Andrei-pq6qp 2 роки тому +2

    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!

  • @dennisstasaski7136
    @dennisstasaski7136 5 років тому +13

    I'm blown away by how high quality this channel is !

  • @manasmahanand732
    @manasmahanand732 5 років тому +646

    Please put a disclaimer that this is not a beginners course, as most beginners would be highly overwhelmed by this (pun not intended).

    • @Fireship
      @Fireship  5 років тому +111

      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

    • @SocksWithSandals
      @SocksWithSandals 5 років тому +15

      console.log(this); // "The Javascript Survival Guide"

    • @G3Number
      @G3Number 5 років тому +3

      Fireship Thanks Thanks Thanks liked and subscribed!! Nice content! :)

    • @ArnoldsKtm
      @ArnoldsKtm 4 роки тому +22

      This is pretty much beginner stuff though...

    • @aaronbell5994
      @aaronbell5994 4 роки тому +17

      @@ArnoldsKtm Closures !== beginner stuff

  • @Robert-qq9em
    @Robert-qq9em 4 роки тому +20

    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.

  • @mcvgs1780
    @mcvgs1780 4 роки тому

    I love the quality of these videos. It combines the humor and entertainment of media essays and commentaries and the objectivity of programming.

  • @d0m2288
    @d0m2288 5 років тому +3

    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.

  • @9550raja
    @9550raja 3 роки тому +1

    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!

  • @gauthamnookala1776
    @gauthamnookala1776 3 роки тому +1

    This has to be one of the most fun, clear, concise videos that I have ever watched. Great job!

  • @undefinedvariable8085
    @undefinedvariable8085 3 роки тому +7

    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.

  • @fonncatalina6464
    @fonncatalina6464 3 роки тому

    I am new to JS and studied some fundamentals for a week ,this is a perfect revision for me! Thanks!

  • @911madza
    @911madza 5 років тому +98

    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..

  • @shibe89
    @shibe89 5 років тому +62

    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?

    • @Fireship
      @Fireship  5 років тому +27

      Great idea, that would make a good module for this course.

  • @miggu
    @miggu 9 місяців тому

    Your content is perfect: pace, humour , rigour , no wonder you're ranked as the best.

  • @stevecarter8810
    @stevecarter8810 4 роки тому

    As a long time developer who has not touched the web for 15 years this is the perfect bootstrap into JavaScript language. Thanks!

  • @CubeAmaterasu
    @CubeAmaterasu 4 роки тому +2

    Bro this is the best coding channel I learn a lot in a really entertaining way. This makes me think University is truly dead

  • @BlameItOnJoe
    @BlameItOnJoe 4 роки тому

    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"

  • @Skellum82
    @Skellum82 Рік тому

    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.

  • @cagri5886
    @cagri5886 4 місяці тому

    The explanation of the Closures and its comparison to the functions might be the best I have heard on UA-cam

  • @zen-ventzi-marinov
    @zen-ventzi-marinov 4 роки тому +1

    Damnnn I love the sound effects, though comedic, with good mood still give you the chills!

  • @stickguy9109
    @stickguy9109 2 роки тому +1

    The times when I used JavaScript I mainly used Canvas API because making games is what's always got me interested.

  • @shivamjhaa
    @shivamjhaa 2 роки тому

    I have been doing JS for a few years now, but this video still clears some concepts. Cool!

  • @kemsekov6331
    @kemsekov6331 2 роки тому

    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.

  • @amithbhagat
    @amithbhagat 2 роки тому +2

    10:40 "Closures" and 12:40 "this".
    Very well explained 👍. Thank you 🙏.

  • @user-nx9he6fz7g
    @user-nx9he6fz7g 5 років тому +1

    Thank you. A really comprehensive video, it filled many gaps I had. Waiting for the new ones!

  • @JR-yi5wb
    @JR-yi5wb 3 роки тому

    BY FAR the best code tutorial on the entirety of UA-cam. lol this video deserves some kind internet award

  • @Blame2a
    @Blame2a 4 роки тому +1

    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

  • @DuyenPhanLan
    @DuyenPhanLan 2 роки тому

    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

  • @uboat46
    @uboat46 5 років тому +3

    Dude! You really make the best videos! This is awesome !

  • @for41
    @for41 2 роки тому

    " what the hell is 'this'? " Your rhetoric in this video is on point. Bravo!

  • @gregfletcher2360
    @gregfletcher2360 5 років тому +6

    Fantastic video! Also that "A Few Good Men" reference was perfect 👌

    • @Fireship
      @Fireship  5 років тому +2

      Thanks! That was a last minute addition

  • @nehemiahalvarado1209
    @nehemiahalvarado1209 4 роки тому

    Very interesting, currently taking a web tech course and this helps further my understanding of Javascript. Thank you for the great work!

  • @bennet615
    @bennet615 Рік тому +2

    dude I vowed never to buy a course but guess i gotta buy yours , your teaching just hits !!!!

  • @iamilyes
    @iamilyes 2 роки тому +3

    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 ❤️🚀

  • @benjaminjameswaller
    @benjaminjameswaller 5 років тому +1

    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!

  • @orinbay7742
    @orinbay7742 2 роки тому

    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

  • @48maliks
    @48maliks 11 місяців тому

    So glad I found this channel. Your videos are Gold mate!

  • @SXCRD
    @SXCRD 5 років тому

    Brilliant! Please continue with these videos. Well done.

  • @bennettfoley3018
    @bennettfoley3018 5 років тому

    another fantastic lecture. looking forward to the next one!

  • @ankitkaushikt
    @ankitkaushikt 8 місяців тому

    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.

  • @pashweetie
    @pashweetie 5 років тому +4

    Finally things I can use that aren't elementary! Thanks!

  • @jameslemayian7610
    @jameslemayian7610 5 років тому

    Pure awesomeness! I like the coherence! Keep it up! You got a new follower. I can't wait for the next.

  • @amit.deshmukh
    @amit.deshmukh 2 роки тому +1

    I never imagined I will binge watch programming tutorial

  • @ludo3941
    @ludo3941 2 роки тому +9

    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!

  • @funnyanimalworld7579
    @funnyanimalworld7579 2 роки тому

    Good explanation for those already into js .Making those abit harder concepts abit clearer.

  • @auntiecarol
    @auntiecarol 2 роки тому

    This is gold for those who have some experience in other languages.

  • @hamzac.4555
    @hamzac.4555 3 роки тому +1

    im gonna watch this video every morning, when you compared closure and object oriented, you won a medal, and + 1000xp

  • @rostyslav5334
    @rostyslav5334 5 років тому +1

    Wow, that was so good, Thank You so much, mate!
    Watching THIS 3rd time.

  • @usamesavas9848
    @usamesavas9848 2 роки тому

    wow, how could you explain such complex stuff in such simple words. admirable

  • @Prestonepope
    @Prestonepope 3 роки тому

    Best JS overview I've seen. Thanks!

  • @donekhan7183
    @donekhan7183 5 років тому +27

    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.

    • @LukePighetti
      @LukePighetti 5 років тому +2

      I had no idea people still used lodash. What do you use it for?

    • @saurabhyadav-nu3mj
      @saurabhyadav-nu3mj 5 років тому +1

      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.

  • @mwinetimothy3020
    @mwinetimothy3020 5 місяців тому

    You just make the learning so interesting. Thanks for the videos

  • @Mohamedhassan-if8ww
    @Mohamedhassan-if8ww 5 років тому

    Best Serie ever . i never thought that javascript was that complecated and easy at the same time

  • @richardcao2670
    @richardcao2670 4 роки тому

    Well done tutorial! It's super helpful and easy to understand. Thank you!!

  • @key_michael
    @key_michael 5 років тому +2

    You are the Web Developer Survival Channel!

  • @VarunVerma
    @VarunVerma 5 років тому +16

    The perfect video for a JS interview. Nice stuff.

    • @SandeepKumar-cx7cz
      @SandeepKumar-cx7cz 3 роки тому +1

      Hi do you work in js
      Please share your CV, if you don't mind
      work42sandeep@gmail.com

  • @superclue
    @superclue 3 роки тому

    Nice and succinct. I prefer it this way where if I miss something I just go back 10 seconds or pause.

  • @FutureJacket
    @FutureJacket 15 днів тому

    As someone with coding experience but not much in JS this was a good primer.

  • @clancy-sigal
    @clancy-sigal 5 років тому

    Awesome video man! I really wish I had seen this video earlier even this is a bit challenging for beginners

  • @runyalen
    @runyalen 2 роки тому

    Got represented witth the "SURVIVAL" part :)

  • @michaelbarley8668
    @michaelbarley8668 5 років тому

    Wow! You are an amazing teacher, I loved this

  • @MrStefanica
    @MrStefanica 3 роки тому +1

    Very good job! I'd recommend this video for higher than beginner JS programers or for programers coming from other languages. 🙂

  • @GPT-X938
    @GPT-X938 5 років тому

    Loving this video series!

  • @ranjeetsinghtharu5375
    @ranjeetsinghtharu5375 3 місяці тому

    You rock Fireship!....learning curve is smooth...your videos are helful

  • @indiansoftwareengineer4899
    @indiansoftwareengineer4899 3 роки тому

    Ending is awesome....
    loved your channel.

  • @karimnaufal9792
    @karimnaufal9792 3 роки тому +1

    First time I understood closures 😂 Thank youuuuu 🙏🏻

  • @ssbrunocode
    @ssbrunocode 2 роки тому

    Thanks for the great content, specially the .call function is extremely powerfull once you understand 'this', really, thank you!

  • @Atheist-Nun
    @Atheist-Nun 4 роки тому

    I enjoyed this tutorial very much ... very entertaining and informative.
    Keep up the good work!

  • @thejonte
    @thejonte 2 роки тому +1

    Somebody: "I hate your style of teaching for free on the internet"
    Fireship: *Hearted*

  • @goldflyknows
    @goldflyknows 3 роки тому

    Never have a been more happy about the ability to play videos at 3/4 speed.

  • @juliohintze595
    @juliohintze595 5 років тому +110

    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?

    • @Fireship
      @Fireship  5 років тому +95

      This is episode 197, I knew basically nothing when I started. Just try to push each one a little further.

    • @viniricardoferrera
      @viniricardoferrera 3 роки тому +8

      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.

  • @breakoutgaffe4027
    @breakoutgaffe4027 Рік тому

    This is tutorial heaven 🙌

  • @edieltondantas6084
    @edieltondantas6084 4 роки тому

    👏thanks for the overview, quite helpful

  • @Hades5k
    @Hades5k 5 років тому

    One can almost learn JS in less than 15 min here....!!! Great video ; )

  • @rne1223
    @rne1223 5 років тому

    I love your editing man.

  • @MartinJaszczuk
    @MartinJaszczuk 3 роки тому

    The intro to this video is hilarious.

  • @Anson_The_Pro
    @Anson_The_Pro 3 роки тому

    Thank you for recommending this plugin. I imagine it would be very useful for predicting what "this" refers to

  • @lingkody3526
    @lingkody3526 3 роки тому

    I really enjoy your tutorials it's not boring 😂, can u make a tutorial on how you edit your tutorials? It's so simple yet entertaining

  • @WolfrostWasTaken
    @WolfrostWasTaken 5 років тому

    I feel like I can only understand and grasp fully the concepts shown in this video because I already have a solid grasp on JS (I started studying and using it many years ago and I still use it on a daily basis). Nevertheless, nice job on these! It's surely a cool way to recap all the things. But a newcomer should really go deeper into these concepts on his own

  • @patelincanada7
    @patelincanada7 2 роки тому

    The shortest JavaScript tutorial Ever 🤩

  • @udithaishan3225
    @udithaishan3225 3 роки тому

    That intro! 💥

  • @phokgedimaja327
    @phokgedimaja327 3 роки тому

    It's good to come to the basics everynow and then. Fireship 🔥

  • @denns0r
    @denns0r 4 роки тому

    wow, awesome editing, nice speaker voice and very understandable 👍 keep up the good work 😃

  • @7921kenny
    @7921kenny 2 роки тому

    I appreciate the class analogy, that helped make js closures click for me 👍

  • @ivansostarec6793
    @ivansostarec6793 3 роки тому

    man I love your memes in between explanations :D

  • @KacangNgoding
    @KacangNgoding 3 роки тому

    this is entertain and make me freak out at the same time.

  • @junehanabi1756
    @junehanabi1756 4 роки тому

    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.

  • @engineeringwithai
    @engineeringwithai 4 роки тому

    Absolutely loved this video. Favorite one. Should add some more memes

  • @SavingShredz
    @SavingShredz 5 років тому +1

    Jeff you're doing the lords work

  • @Troglodyte2021
    @Troglodyte2021 2 роки тому

    After the video, I know I will keep my compure like the gentleman in the end.

  • @dealloc
    @dealloc 4 роки тому +1

    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.

  • @mandaputtra
    @mandaputtra 5 років тому

    This always usefull when you create game in javascript cause this is awesome