*Bookmarks:* *Syntax* - 5:45 _Notes:_ JavaScript infers type at run time (a string '42' - 2 equals 40 but a string '42' + 2 = '422' because concatenation takes priority over changing the object type) typeof can show primitive type at run time (useful for debugging)' use instance of for instance use typeof for primitive - 13:00 primitives are objects as well as everything else - 13:40 *Patterns* - 14:25 _Notes:_ There are two links to follow to read up on patters, these links lead to rather large reference, make sure to have a lot of time set aside to read these and be ready to really put a lot of effort into actually understanding what these sites are trying to teach Creating objects - 15:22 Something that looks like it shouldn't work, does not work in the exact way it seems it shouldn't work. - 16:25 and @ 18:10 - the way you would normally do it in any other language is the way you should be doing it *Objects* - 18:40 _Notes:_ An object is an unordered collection of key-value pairs var object { key: value; }; Dot notation - 20:50 works just like it does in java or c or csharp or cpp etc. in key-value pair, value can be another object (objectception) - 22:10 *Functions* - 23:40 _Notes:_ global variables should only be used when necessary. Really though, its never necessary (duh) - 28:30 setTimeout is asynchronous and obvious things happen because of this fact - 33:50 34:50 - what? oh I get it, you have two instances of setTimeout running and the first one has a variable of messages[0] and the second instance of setTimeout has the variable messages[1] and they are both still asynchronous but they have their own vars now... you explained that kinda weird... Closure - 36:32 : I don't fully understand whats going on here but then again I don't really know much about design patterns in the first place google more about module pattern *The this keyword* - 44:45 _Notes:_ ok so not only can you pass an object type as a param on instantiation (I guess because everything is similiar to java generics and they didn't want to have to use all that stuff.. but wait; does the object type have to be the first param passed? why is it done this way at all? this just seems weird...) but you can also pass property names as.. strings...? I think I need to watch a few introductory videos on this language @ 59:00 YOU CAN HAVE FUNCTIONS WITHOUT SPECIFYING PARAMETERS??!?! BUT WHY?!?!? *Understanding Prototype* - 1:00:00 _Notes:_ Prototypes are weird but possibly necessary (?) because of reasons I actually don't think I understood any of this. I'll have to come back to it later >> Personal summary and final thoughts on the video
@CAPS_AMERICA3 жыл бұрын
The prototype is what I'm trying to understand. I guess it's just another way of preventing the same method to be created on each instance of the object so it's needs to be defined in the prototype, my understanding.
@thebroscientist84949 жыл бұрын
Travis, I'm addicted to your videos! Thanks so much for convincing me to learn JavaScript at a high level. (currently a Java web dev) The 51 minute mark, explaining the *this* pointer in regards to setTimeout...brilliant!
@MdFive1008 жыл бұрын
I needed just 15 random seconds of this video to subscribe you. When i saw how you explain a simple function i knew that the whole video its awesome ! Best tutorial so far and really good explanations. I hope you're doing more videos. Keep up the good work.
@SongMachina8 жыл бұрын
This is an excellent video. It hits so many important points concisely and with good pacing. Thank you Travis
@shuaima59899 жыл бұрын
Wonderful presentation! Saves me a lot of time,,,, I wonder why only a few thousand people watch this:(
@derekfrost89913 жыл бұрын
Very nice tutorial, one of the best I've seen. It's unusual to find a high level of competence with a nice readable font. You even use the radix with parseInt which most people forget.. ☺️👍
@ChristianJosephs9 жыл бұрын
Hey Travis, coming from Wordpress I made my way the last 2 months to Javascript. My Goal is to become Full-Stack in the next 2 years. To become great it takes time and practise I believe. I have to give you a big shoutout your videos are great. When you say some gurus teach you theoretical stuff you are right. I watched around 50 hours of Tutorials in the last 2 months and I have to say your videos with the videos from LearnCode.academy are the best out there at the moment. (I also paid for Code School and this stuff.. they are good for the basics but not more). It would be great if you find time to make more videos like this, also your MEAN Vid was awesome and it took me 4 tutorials (in the end your tutorial was the key) to understand the MEAN Stack in the right way and the connections between the technologies. Speaking as a newbie , give me more! :D Cheers from Bangkok!
@travist3499 жыл бұрын
Christian Josephs Thanks for the great feedback Christian. I am happy to offer these to my fellow developers.
@davidb88319 жыл бұрын
+Travis Tidwell It is really helpful though, programming is by no means easy. Cheers to explaining things fully and concisely.
@ThePandaGuitar8 жыл бұрын
This video is gold. Thank you Travis!
@gnawlej91639 жыл бұрын
This is an awesome summary of tricky mechanics in JS. Thanks for saving me many future headaches!
@toomuchtruth8 жыл бұрын
Thank you so much for this! So clear and concise, exactly what I was looking for. Really well thought out and intelligent examples throughout. The last 10 minutes started to get a bit challenging as the concepts started to stack up so had to listen over a few times. Not much better use of an hour than this!
@RuiSantosdotme9 жыл бұрын
Great presentation. Thanks for taking the time to record this new version!
@64433288 жыл бұрын
Hi Travis, I'm watching your great video and noticed a point (33:18) which i think was not clear enough. You're talking about scopes but another very important thing here is the execution scheduling: The setTimeout, moves the callback function into the event queue which is executed ONLY when the current execution stack is over (even if you use 0ms as the delay parameter). This means the anonymous function is executed AFTER the for loop has finished its all iterations, and THEN the scope issue arises to explain how the anonymous function is aware to the loop index when it runs. Thanks for your video!
@bishopoftroy9 жыл бұрын
Very efficient explanation, concise, spot on. I really understood and i would like a complete javascript class...like 12 hours or something like that..i would be happy to pay for it :) keep the good work coming !
@BowlineDandy9 жыл бұрын
Thank you so much for these tutorials!! I studied a bit of object oriented js on treehouse but I didn't get it that well. The explanation was flawless. Really a lot of golden nuggets in here as you would say. Cheers from Mexico :)
@jsnode20758 жыл бұрын
Your video is like a premium tutorials, thank you..
@digitalx7888 жыл бұрын
I thought I knew a fair amount of js and 12 minutes in learnt something new. Thanks for the tutorial
@rajkumarpalani41348 жыл бұрын
Excellent! I was unaware of prototype in Javascript. Thanks Travis!
@emmanuel46998 жыл бұрын
Great value, sir. Well done.
@hdmi008 жыл бұрын
Quick question, at 51:11 , if we set the setTimout method to this : setTimeout(person.getinfo() , 1000); why does adding the parenthesis to "getinfo" makes it work?
@travist3498 жыл бұрын
Because when you don't use parentheses, you are not invoking the method, but rather passing the method to setTimeout to be executed later. Because of this, the method is not getting invoked on the person object, but rather as an independent function within setTimeout. This causes the this pointer to not be pointing to the person object when it is invoked.
@hdmi008 жыл бұрын
Thank you ! What's the best way to really understand these weird parts of Javascripts?
@sergheisergheich60179 жыл бұрын
Hi man, tutorial is great. i would like to see much more videos dedicated to javascript and i am sure much people would like it.
@Sathyaish8 жыл бұрын
Thank you. I enjoyed the course. I am curious as to what IDE you are using?
@victorantunes10499 жыл бұрын
Hello Travis, fantanstic work, thanks a lot! One question:@37:40 you say that a closure is basically a function which returns another function. I've tried removing the 'return function' part and the output is the same. Under the hood, is there any difference? Is this still considered a closure? Are there any use cases where the output would be different? P.S.: your videos are fantastic. Keep it up :D
@travist3499 жыл бұрын
Victor Antunes The output may be the same, but the difference is that your version is probably executing the console.log immediately vs. executing it after 1 second, am I right? If so, then to answer your question, the technical definition of a closure does include the callback function, but you can still achieve the same result without the callback by capturing the scope of the variable being passed into the function.
@victorantunes10499 жыл бұрын
Travis Tidwell Ah, yes. The return makes it so that the portion inside the anonymous function is not called immediately when the enclosing function is called, but only when deemed necessary, correct? I think I understand now. Thanks.
@cellularmitosis28 жыл бұрын
Unfortunate that there's a repeating super high frequency "ding" sound.
@bencole123459 жыл бұрын
Really informative video, thank you Travis!
@stevenlane69636 жыл бұрын
Very informative video 'keep them coming'.
@richardtian48478 жыл бұрын
Could you tell me how to make the presentation material like this? I've been using PPT, but this...wow!
@saikiran-xo5we7 жыл бұрын
Hi Travis, what is the IDE you being used ?
@drummerpram9 жыл бұрын
you explain things very well... thank you!
@mattnilsen11998 жыл бұрын
Hi Travis , I am new to JavaScript but understand some basic atm, But can i ask after printing out on the console the following console.log(parseInt(theMeaningOfLife, 10) + 2); what is the 10 for inside the bracket for ??
@kwayssa8 жыл бұрын
means base-10 number, decimal number system
@TechMedia-it8 жыл бұрын
Hi Travis on 50:50 the code actually 'sayName' var person ={ firstName: 'Izuchukwu', lastName: 'Anthony', sayName: function() { console.log(this.firstName + ' ' + this.lastName); } }; //person.sayName(); setTimeout(person.sayName(),2000); I guess you called a ver with "setTimeout(person.sayName.1000); instead of a function sayName()
@tonyzhu69578 жыл бұрын
Hello Travis, When you talked about the "this" in scope and context, I changed "person.sayName" to "person.sayName()" in the setTimeout. it worked in Chrome browser. Is this implicit in using the bind like the example in your video? var person = { firstName: 'Test', lastName: 'Test', sayName: function() { console.log(this.firstName + ' ' + this.lastName); } }; setTimeout(person.sayName(), 1000);
@travist3498 жыл бұрын
That works because you call it immediately and pass the return of "person.sayName()" to setTimeout (which doesn't do anything). I am sure you see the name show up immediately and not take 1 second to show when you did that as well, right?
@tonyzhu69578 жыл бұрын
Yes. Thank you for the clarification.
@lipaksahu24048 жыл бұрын
Yes @Travis. I had doubt on that too. Thanks for the clarification. Nice video.
@kap40208 жыл бұрын
very nice explanation of 'this'
@jdr2.paradigmabiblico1287 жыл бұрын
Mr Tidwell, may I ask which eidtor are you using? I an new to JS
@k.71268 жыл бұрын
Excellent tutorial. Thank you.
@MauFerrusca6 жыл бұрын
Hey, Travis. Thanks for this video. Could you clarify for me why setTimeout(person.sayName(), 2000); does work but setTimeout(person.sayName, 2000); does not?
@prateekbajpayee9 жыл бұрын
At kzbin.info/www/bejne/fpPKg3l-bqd0r5Im32s what is the difference between person.sayName and person.sayName() because using with () gives the output correctly when used inside setTimeout..
@MauFerrusca6 жыл бұрын
I have the same question.
@plebeiu9 жыл бұрын
Travis.. this form.io service look amazing! kudos on that one.
@travist3499 жыл бұрын
Jaime Lee Thank you! Feel free to request for a Beta key to try it out!
@plebeiu9 жыл бұрын
I'm already in
@nameinaframeindy8 жыл бұрын
Hi. I'm pretty new to coding but I have a question for an experienced coder. Is it a bad idea to try to learn from videos from 2015? How much does a language change from year to year?
@mkc058 жыл бұрын
Please help, Yes, if you can help how to set JAVA environment on notepad++ Or, maybe any other editor...? Thanx in advance...
@asarrees8 жыл бұрын
+Kelly Co If you wish to use Java, you should try out Intellij or NetBeans or Eclipse.
@akidfromtheblock8 жыл бұрын
Java and JavaScript are not to be misconceived. Both are completely different languages. If you are looking for a good IDE for Java, refer to the comment above, if you are looking for a good JavaScript environment, I would recommend Webstorm (Jetbrains). However if you're on a budget, brackets/sublime text will also get the job done. Happy programming :)
@keckelt9 жыл бұрын
Hey Travis, which IDE did you use in the Video?
@toalopez8 жыл бұрын
it is call WebStorm from Jet Brains
@goldilockszone43898 жыл бұрын
Hello Good people - I am learning to build apps (both mobile/Web) which I will then sell on app stores. I want to build a company in the future to do so. I have already invested in Treehouse and learned basics of python, swift, Javascript, SQL and HTML>CSS. Now I want to dig deeper - in an area where I start connecting the dots. Build a page connect it to a server, record data in a database. I want to DIY in the app world in short. What should I LEARN ???
@travist3498 жыл бұрын
Flip Tube I would check out form.io. It can serve as the platform to your app.
@goldilockszone43898 жыл бұрын
thanks
@goldilockszone43898 жыл бұрын
oh you are the CTO of Form.Io :) no wonder
@goldilockszone43898 жыл бұрын
Do i need to know Angular 2 to build apps here ?
@travist3498 жыл бұрын
Flip Tube it works with angular 1 & 2 and React.js
@kerimtim8 жыл бұрын
What font are you using Travis?
@hdmi008 жыл бұрын
I believe it's the basic Mac font :" Lucida Grande" though on Windows it's doesn't look as good as that, an alternative I've been using in almost everything is Monaco. Download link : github.com/todylu/monaco.ttf
@travist3498 жыл бұрын
It is the default font provided by WebStorm IDE.
@sakules8 жыл бұрын
None of the 2 links in the video work
@prateekbajpayee9 жыл бұрын
What is the IDE used in this tutorial??
@toalopez8 жыл бұрын
it is call WenStorm from Jet Brains
@Phishstaebchen9 жыл бұрын
Pretty helpful. Thanks!
@basalduat8 жыл бұрын
Slide over to 5:58 to skip his commercial message.
@hikolanikola87756 жыл бұрын
Outdated?
@wealtylife55188 жыл бұрын
you are genius!!!
@walkingtraveller32599 жыл бұрын
awsme man
@nicklaspersson46878 жыл бұрын
Very good content and well explained. Audio is quit good but if you want to make it perfect you might want to consider your room acoustic. Seems to interfere with the audio quite a bit because there is quite a bit of echo of your voice from the naked walls in the room. I am by no means an acoustic expert but i think your audio can become a bit more pleasant if you would either turn down your mic say 5-10%, perhaps try to put a muffler on the mic or putting some dampening material on your walls. Looking forward to more of your content. Well done. Thank you very much for your efforts.
@calebblaber56156 жыл бұрын
This was helpful
@jaysonhahn58819 жыл бұрын
Does anyone else hear a really high pitched noise during this video?
@sheriffderek8 жыл бұрын
+Jayson Hahn Not me.
@pippi39937 жыл бұрын
LOL Fan of Douglas Adams! The meaning of life = 42.
@jimmythebold5895 жыл бұрын
it's also the sum of 3 cubes!!!!
@jimmythebold5895 жыл бұрын
it's also the sum of 3 cubes!!
@jimmythebold5895 жыл бұрын
test
@amertunes53749 жыл бұрын
Travis, That is a great tutorial. Thank you so much. I was looking for the source code of your tutorial but i couldn't find it, so I created a tutorial file that has all the examples in your video with slightly different variable names. You can find it on github: github.com/amercode/tutorials/tree/master/JavascriptEssentials Thought people will find it useful. Let me know what you think!
@kazenohito76416 жыл бұрын
The meaning of life is 42, I see what you did there....