#100DaysOfWeb in Python Transcripts
Chapter: Days 25-28: JavaScript Introduction
Lecture: Common JS gotchas
Login or
purchase this course
to watch this video and the rest of the course contents.
0:01
JavaScript gotchas. It's important to acknowledge that JavaScript was designed in 10 days. Gary Bernhardt, in his inspiring talk
0:14
The Birth and Death of JavaScript, shows this in relation to the time it took to design Closure and you see it was very fast.
0:25
And that led to some weird decisions in the design and here he shows some examples. Go watch this talk.
0:34
It's not only highly entertaining, and inspiring but also visionary 'cause a lot of what he said five years ago is actually very relevant today.
0:46
So what are some common JavaScript gotchas? Well, the most important thing are global variables. As per best programming practices
0:55
the less isolated something is the less reliable. Make something global and it can change in multiple locations. We've already seen that
1:05
if you use the var keyword to initialize variables those variables can easily be clobbered in outer namespaces. So you should use let and const.
1:18
JavaScript has C-style block syntax but not its block scope. No information hiding. In the same vein, the flexibility of JavaScript
1:29
allows you to omit semi-colons at the end of your statements. Which usually is not a problem unless you space your code in a certain way
1:38
then errors again pass silently. So make sure you use semi-colons to not run that risk. And there are two equality operators.
1:50
If you use double equals sign to compare number one and string one it would say that they were equal. But that might not be what you want
2:00
because although they look the same they're not from the same data type. So it's recommended to use triple quotes which not only compares the values
2:11
but also the types. So in that case number one and string one would not be the same. And, similarly there are two ways
2:20
to say that something is null, or undefined. Where Python for example only has none and it still confuses me which one is used in which scenario.
2:32
Remember, errors should never pass silently according to Python, unless explicitly silenced. There should be one, and preferably only one
2:42
obvious way to do things. And namespaces are one honking great idea. And of course this is a lesson on JavaScript. It's not Python.
2:50
But looking at the inner works of JavaScript, I both appreciate Python a lot for its design, but I can also see how JavaScript
2:59
is dynamic and easy to get started with. It's just that you have to keep these kinds of gotchas in mind when you're programming JavaScript
3:08
to rule out any unnecessary risks. And this is a very high level overview of JavaScript. And in the last video, I'm going to
3:16
point you to some resources so you can keep studying JavaScript. Because again, it's used everywhere and the web is running on JavaScript.
3:25
So any time you can invest learning this language is time well spent.