Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
1
00:00:00,930 --> 00:00:04,230
So you've already written a line or two of JavaScript,
2
2
00:00:04,230 --> 00:00:08,890
but what exactly is JavaScript and what can we do with it?
3
3
00:00:08,890 --> 00:00:10,660
Well, that's exactly what
4
4
00:00:10,660 --> 00:00:12,750
we're gonna find out in this video.
5
5
00:00:12,750 --> 00:00:14,280
And so in this lecture,
6
6
00:00:14,280 --> 00:00:17,230
we will set the stage for the rest of the course.
7
7
00:00:17,230 --> 00:00:19,150
And so it's really important that you
8
8
00:00:19,150 --> 00:00:20,883
follow this one until the end.
9
9
00:00:22,160 --> 00:00:25,680
So we can define JavaScript in many different ways.
10
10
00:00:25,680 --> 00:00:27,440
But, my definition is that
11
11
00:00:27,440 --> 00:00:30,050
it's a high level object-oriented,
12
12
00:00:30,050 --> 00:00:32,950
multi-paradigm programming language.
13
13
00:00:32,950 --> 00:00:34,290
And with that being said,
14
14
00:00:34,290 --> 00:00:36,810
can we move on to the next lecture now?
15
15
00:00:36,810 --> 00:00:39,210
Well, probably not because
16
16
00:00:39,210 --> 00:00:41,980
what does any of that actually mean?
17
17
00:00:41,980 --> 00:00:44,740
So let's deconstruct this just a little bit
18
18
00:00:44,740 --> 00:00:47,830
to at least make some sense out of this.
19
19
00:00:47,830 --> 00:00:50,660
And starting with programming language itself,
20
20
00:00:50,660 --> 00:00:53,580
a programming language is basically just a tool
21
21
00:00:53,580 --> 00:00:55,270
that allows us to write code
22
22
00:00:55,270 --> 00:00:58,910
that will instruct a computer to do something.
23
23
00:00:58,910 --> 00:01:00,800
And of course, that's our main goal
24
24
00:01:00,800 --> 00:01:03,550
of using JavaScript, right?
25
25
00:01:03,550 --> 00:01:05,100
Then I go on and say that
26
26
00:01:05,100 --> 00:01:07,460
JavaScript is a high-level language,
27
27
00:01:07,460 --> 00:01:09,780
which means that we don't have to think
28
28
00:01:09,780 --> 00:01:12,930
about a lot of complex stuff such as managing
29
29
00:01:12,930 --> 00:01:16,360
the computer's memory while it runs or program.
30
30
00:01:16,360 --> 00:01:17,460
So in JavaScript,
31
31
00:01:17,460 --> 00:01:20,090
there are a lot of so-called abstractions
32
32
00:01:20,090 --> 00:01:21,870
over all these small details
33
33
00:01:21,870 --> 00:01:23,920
that we don't want to worry about.
34
34
00:01:23,920 --> 00:01:25,040
And this makes the language
35
35
00:01:25,040 --> 00:01:28,260
a lot easier to write and to learn.
36
36
00:01:28,260 --> 00:01:31,760
Next, I say that JavaScript is object oriented.
37
37
00:01:31,760 --> 00:01:33,910
And all that means is that the language
38
38
00:01:33,910 --> 00:01:37,100
is mostly based on the concept of objects
39
39
00:01:37,100 --> 00:01:39,600
for storing most kinds of data.
40
40
00:01:39,600 --> 00:01:41,280
And of course, we will learn all about
41
41
00:01:41,280 --> 00:01:44,690
object-oriented programming throughout this course.
42
42
00:01:44,690 --> 00:01:48,490
Finally, JavaScript is also a multi-paradigm language,
43
43
00:01:48,490 --> 00:01:51,680
meaning that it's so flexible and versatile,
44
44
00:01:51,680 --> 00:01:54,940
that we can use all kinds of different programming styles,
45
45
00:01:54,940 --> 00:01:58,250
such as imperative and declarative programming.
46
46
00:01:58,250 --> 00:01:59,990
And these different styles are just
47
47
00:01:59,990 --> 00:02:03,760
different ways of structuring our code, basically.
48
48
00:02:03,760 --> 00:02:07,540
Again, you will learn all about this throughout the course.
49
49
00:02:07,540 --> 00:02:10,670
This just a first, very high level overview,
50
50
00:02:10,670 --> 00:02:13,113
but I hope it's been making sense so far.
51
51
00:02:14,640 --> 00:02:18,100
Anyway, now that we know what JavaScript actually is,
52
52
00:02:18,100 --> 00:02:20,620
at least kind of, what is the role
53
53
00:02:20,620 --> 00:02:22,720
that it plays in web development,
54
54
00:02:22,720 --> 00:02:26,340
or in other words, what do we actually use it for?
55
55
00:02:26,340 --> 00:02:27,830
And to answer that question,
56
56
00:02:27,830 --> 00:02:31,940
let's actually look at a three core technologies of the web,
57
57
00:02:31,940 --> 00:02:36,240
HTML, CSS and of course, JavaScript.
58
58
00:02:36,240 --> 00:02:39,140
So these three technologies all work together
59
59
00:02:39,140 --> 00:02:41,520
to create beautiful, interactive
60
60
00:02:41,520 --> 00:02:44,860
and dynamic websites or web applications.
61
61
00:02:44,860 --> 00:02:49,130
Now the HTML is responsible for the content of the page.
62
62
00:02:49,130 --> 00:02:51,880
So the text, the images, the buttons,
63
63
00:02:51,880 --> 00:02:54,480
and all the contents that you see on the webpage
64
64
00:02:54,480 --> 00:02:57,150
is always written in HTML.
65
65
00:02:57,150 --> 00:03:00,040
Then the CSS is responsible for the
66
66
00:03:00,040 --> 00:03:02,160 line:15%
presentation of that content.
67
67
00:03:02,160 --> 00:03:05,000
So basically for styling and for laying out
68
68
00:03:05,000 --> 00:03:07,330
the elements on a webpage.
69
69
00:03:07,330 --> 00:03:10,300
And then, finally, JavaScript is the real
70
70
00:03:10,300 --> 00:03:12,920 line:15%
programming language of the internet.
71
71
00:03:12,920 --> 00:03:15,540
And it allows developers to add dynamic
72
72
00:03:15,540 --> 00:03:19,470
and interactive effects to any webpage.
73
73
00:03:19,470 --> 00:03:23,110
We also use it to manipulate the content or the CSS,
74
74
00:03:23,110 --> 00:03:25,420
load data from remote servers
75
75
00:03:25,420 --> 00:03:29,310
and really build entire applications in the browser,
76
76
00:03:29,310 --> 00:03:32,530
which we then call web applications.
77
77
00:03:32,530 --> 00:03:35,340
Now, we can also use the analogy of nouns,
78
78
00:03:35,340 --> 00:03:38,300
adjectives, and verbs to make this separation
79
79
00:03:38,300 --> 00:03:40,783
of roles a bit easier to understand.
80
80
00:03:41,670 --> 00:03:45,290
So in this analogy, HTML represents the nouns.
81
81
00:03:45,290 --> 00:03:49,870
For example, saying that the P element is a paragraph.
82
82
00:03:49,870 --> 00:03:53,070
And so paragraph is the noun here.
83
83
00:03:53,070 --> 00:03:55,390
The CSS then, is the adjective,
84
84
00:03:55,390 --> 00:03:57,660
because it describes the noun.
85
85
00:03:57,660 --> 00:04:02,510
Like this piece of CSS saying the paragraph text is red.
86
86
00:04:02,510 --> 00:04:06,470
And so here, red is the adjective describing the noun.
87
87
00:04:06,470 --> 00:04:10,110
And finally JavaScript is, of course, the verb,
88
88
00:04:10,110 --> 00:04:12,910
like saying hide the paragraph.
89
89
00:04:12,910 --> 00:04:16,960
And so here we are doing something and so we have a verb.
90
90
00:04:16,960 --> 00:04:17,800
Okay?
91
91
00:04:17,800 --> 00:04:19,390
Does that make sense?
92
92
00:04:19,390 --> 00:04:21,140
Now, since we've been talking a lot
93
93
00:04:21,140 --> 00:04:24,580
about dynamic effects and web applications here,
94
94
00:04:24,580 --> 00:04:27,640
let's now actually take a look at a real example
95
95
00:04:27,640 --> 00:04:31,463
to make it even more clear what JavaScript is capable of.
96
96
00:04:33,060 --> 00:04:36,760
And so this is the Twitter web application on twitter.com
97
97
00:04:36,760 --> 00:04:38,440
and there is a lot happening
98
98
00:04:38,440 --> 00:04:41,480
as we open a profile page like this one.
99
99
00:04:41,480 --> 00:04:45,290
And so I thought that this was a very cool example.
100
100
00:04:45,290 --> 00:04:46,850
So right off the bat,
101
101
00:04:46,850 --> 00:04:48,080
you see that there are these
102
102
00:04:48,080 --> 00:04:50,450
two rotating spinners on the page,
103
103
00:04:50,450 --> 00:04:53,770
meaning that JavaScript is probably loading some data
104
104
00:04:53,770 --> 00:04:56,880
from the Twitter service in the background.
105
105
00:04:56,880 --> 00:04:59,150
Then, as the data arrives,
106
106
00:04:59,150 --> 00:05:01,370
JavaScript hides these spinners,
107
107
00:05:01,370 --> 00:05:03,703
and instead show us the loaded content.
108
108
00:05:04,570 --> 00:05:06,350
So this is a very cool example
109
109
00:05:06,350 --> 00:05:10,370
of manipulating styles and content, right?
110
110
00:05:10,370 --> 00:05:14,100
But there's also some simpler dynamic effect on this page,
111
111
00:05:14,100 --> 00:05:16,560
like JavaScript showing the tweet box
112
112
00:05:16,560 --> 00:05:18,530
whenever we hit the tweet button
113
113
00:05:18,530 --> 00:05:22,630
and then hides it as we click outside of that box.
114
114
00:05:22,630 --> 00:05:24,900
And finally, JavaScript also displays
115
115
00:05:24,900 --> 00:05:27,180
this really nice user information
116
116
00:05:27,180 --> 00:05:30,610
as we hover our mouse over any user on Twitter.
117
117
00:05:30,610 --> 00:05:34,440
And it probably also loads this data on the fly.
118
118
00:05:34,440 --> 00:05:37,040
So a lot of cool stuff going on here,
119
119
00:05:37,040 --> 00:05:39,640
and it's all powered by JavaScript.
120
120
00:05:39,640 --> 00:05:41,450
How cool is that?
121
121
00:05:41,450 --> 00:05:43,830
And in fact, by the end of the course,
122
122
00:05:43,830 --> 00:05:45,550
you will actually know how to use
123
123
00:05:45,550 --> 00:05:48,340
all of these techniques that we just saw here.
124
124
00:05:48,340 --> 00:05:50,040
And so I hope that this makes you
125
125
00:05:50,040 --> 00:05:53,143
even more excited about all the content ahead.
126
126
00:05:54,770 --> 00:05:56,670
Alright, now that we saw what
127
127
00:05:56,670 --> 00:06:00,730
JavaScript is really capable of, let's quickly recap,
128
128
00:06:00,730 --> 00:06:03,090
and also look at other cool stuff
129
129
00:06:03,090 --> 00:06:06,720
that we can build with the power of JavaScript.
130
130
00:06:06,720 --> 00:06:08,460
So as you already know,
131
131
00:06:08,460 --> 00:06:12,230
Java script allows us to add dynamic effects to pages.
132
132
00:06:12,230 --> 00:06:14,600
And in fact, to build entire
133
133
00:06:14,600 --> 00:06:17,220
web applications in the browser,
134
134
00:06:17,220 --> 00:06:19,920
and these applications feel almost like the apps
135
135
00:06:19,920 --> 00:06:23,960
that we use on our computers and phones every single day.
136
136
00:06:23,960 --> 00:06:25,550
So we can say that JavaScript
137
137
00:06:25,550 --> 00:06:28,160
is what made modern web development,
138
138
00:06:28,160 --> 00:06:30,380
and really the whole modern web itself
139
139
00:06:30,380 --> 00:06:32,750
possible in the first place.
140
140
00:06:32,750 --> 00:06:34,690
Now, if you're already somewhat familiar
141
141
00:06:34,690 --> 00:06:37,170
with the web development industry,
142
142
00:06:37,170 --> 00:06:39,830
you probably heard of modern JavaScript libraries
143
143
00:06:39,830 --> 00:06:44,830
and frameworks such as React, Angular or Vue, right?
144
144
00:06:45,180 --> 00:06:48,500
And if you didn't, that's absolutely no problem.
145
145
00:06:48,500 --> 00:06:51,650
All you need to know is that these are basically tools
146
146
00:06:51,650 --> 00:06:54,970
that make writing modern, large scale web applications,
147
147
00:06:54,970 --> 00:06:57,350
a lot easier and faster.
148
148
00:06:57,350 --> 00:07:00,270
Now what matters here, is that all these frameworks
149
149
00:07:00,270 --> 00:07:05,260
and libraries are still 100% based on JavaScript.
150
150
00:07:05,260 --> 00:07:07,980
And what this means is that you should become really,
151
151
00:07:07,980 --> 00:07:09,802
really good at JavaScript before learning
152
152
00:07:09,802 --> 00:07:13,100
and using any of these frameworks,
153
153
00:07:13,100 --> 00:07:16,000
and not just jump into your first framework
154
154
00:07:16,000 --> 00:07:19,880
after you know how to write, like, 10 lines of JavaScript.
155
155
00:07:19,880 --> 00:07:21,200
Okay?
156
156
00:07:21,200 --> 00:07:23,340
Also your library of choice
157
157
00:07:23,340 --> 00:07:26,670
might not always be as popular as it is today.
158
158
00:07:26,670 --> 00:07:30,450
And the best way to be prepared is, you guessed it,
159
159
00:07:30,450 --> 00:07:33,400
becoming really good at JavaScript,
160
160
00:07:33,400 --> 00:07:37,520
because then you can easily learn whatever is popular next.
161
161
00:07:37,520 --> 00:07:39,740
So no matter what anyone tells you,
162
162
00:07:39,740 --> 00:07:41,610
learning JavaScript properly
163
163
00:07:41,610 --> 00:07:44,650
is the single best investment that you can make
164
164
00:07:44,650 --> 00:07:47,980
in your web development career right now.
165
165
00:07:47,980 --> 00:07:50,950
Now the JavaScript language and the web browser
166
166
00:07:50,950 --> 00:07:53,260
are actually two separate things.
167
167
00:07:53,260 --> 00:07:55,500
And what that means is that JavaScript
168
168
00:07:55,500 --> 00:07:58,740
can also run outside of web browsers.
169
169
00:07:58,740 --> 00:08:02,970
For example, it's possible to use JavaScript on a web server
170
170
00:08:02,970 --> 00:08:06,770
using a very popular technology called Node.js,
171
171
00:08:06,770 --> 00:08:09,430
which doesn't need any browser at all.
172
172
00:08:09,430 --> 00:08:13,330
And this allows us to create so-called backend applications,
173
173
00:08:13,330 --> 00:08:16,390
which are simply applications that run on a web server
174
174
00:08:16,390 --> 00:08:20,150
and interact with databases and stuff like that.
175
175
00:08:20,150 --> 00:08:23,450
On the other hand, when we use JavaScript in the browser,
176
176
00:08:23,450 --> 00:08:27,000
we create so-called front end applications.
177
177
00:08:27,000 --> 00:08:30,040
So in this course, we will learn the ins and outs
178
178
00:08:30,040 --> 00:08:32,410
of the JavaScript language itself,
179
179
00:08:32,410 --> 00:08:35,710
and of course also how to use it in the browser
180
180
00:08:35,710 --> 00:08:38,400
in order to create all these amazing effects
181
181
00:08:38,400 --> 00:08:40,260
that we've been talking about.
182
182
00:08:40,260 --> 00:08:41,530
So basically we're going to be
183
183
00:08:41,530 --> 00:08:44,720
building front-end web applications.
184
184
00:08:44,720 --> 00:08:45,730
And in the future,
185
185
00:08:45,730 --> 00:08:48,860
I might also add a section about Node.js
186
186
00:08:48,860 --> 00:08:50,380
at the end of this course,
187
187
00:08:50,380 --> 00:08:53,410
so that you can get a sense of how we can use JavaScript
188
188
00:08:53,410 --> 00:08:56,573
outside of the browser environment as well.
189
189
00:08:57,550 --> 00:08:58,383
All right.
190
190
00:08:58,383 --> 00:09:00,233
And now, just to finish, I want to mention
191
191
00:09:00,233 --> 00:09:03,110
that we can actually also use JavaScript
192
192
00:09:03,110 --> 00:09:06,070 line:15%
to build kind of native mobile applications,
193
193
00:09:06,070 --> 00:09:08,820 line:15%
as well as native desktop applications
194
194
00:09:08,820 --> 00:09:12,500 line:15%
for any phone and computer operating system out there.
195
195
00:09:12,500 --> 00:09:15,600
That's because of modern tools like React Native,
196
196
00:09:15,600 --> 00:09:19,350
the Ionic framework and tools like Electron.
197
197
00:09:19,350 --> 00:09:22,500
These have completely changed the whole development industry
198
198
00:09:22,500 --> 00:09:24,070
over the last couple of years,
199
199
00:09:24,070 --> 00:09:27,960
making things possible that were never possible before.
200
200
00:09:27,960 --> 00:09:30,900
So as you can see, there's almost nothing
201
201
00:09:30,900 --> 00:09:33,070
that you can't build after becoming
202
202
00:09:33,070 --> 00:09:35,020
really good at JavaScript,
203
203
00:09:35,020 --> 00:09:39,260
which if you think about it, is really kind of mind-blowing.
204
204
00:09:39,260 --> 00:09:43,233
It's just amazing, because the possibilities are so endless.
205
205
00:09:44,200 --> 00:09:45,033
Okay.
206
206
00:09:45,033 --> 00:09:46,540
And now to finish this lecture,
207
207
00:09:46,540 --> 00:09:49,840
I want to briefly talk about JavaScript releases
208
208
00:09:49,840 --> 00:09:52,400
or versions, as you might call them.
209
209
00:09:52,400 --> 00:09:55,120
We will come back to this topic by the end of the section
210
210
00:09:55,120 --> 00:09:57,240
because it's super important,
211
211
00:09:57,240 --> 00:10:00,360
but it's also a good idea to get a first overview
212
212
00:10:00,360 --> 00:10:03,470
of JavaScript releases at this point.
213
213
00:10:03,470 --> 00:10:06,140
Anyway, to make a long story short,
214
214
00:10:06,140 --> 00:10:10,280
there has been a huge update to the language in 2015,
215
215
00:10:10,280 --> 00:10:13,020
which is officially called ES2015,
216
216
00:10:13,020 --> 00:10:15,440
but most people just call it ES6,
217
217
00:10:15,440 --> 00:10:19,100
simply because it was released after ES5.
218
218
00:10:19,100 --> 00:10:23,090
And by the way, E. S stands for ECMAScript.
219
219
00:10:23,090 --> 00:10:25,180
Now after ES2015,
220
220
00:10:25,180 --> 00:10:27,410
there is now a yearly new release
221
221
00:10:27,410 --> 00:10:29,940
with a couple of new JavaScript features.
222
222
00:10:29,940 --> 00:10:32,870
In all of these new releases or versions,
223
223
00:10:32,870 --> 00:10:37,870
starting from ES2015, is what we call modern JavaScript.
224
224
00:10:38,100 --> 00:10:40,530
But, why am I telling you all this?
225
225
00:10:40,530 --> 00:10:42,870
Well, it's simply because in this course,
226
226
00:10:42,870 --> 00:10:44,890
I'm gonna teach you a modern JavaScript,
227
227
00:10:44,890 --> 00:10:46,400
right from the beginning.
228
228
00:10:46,400 --> 00:10:49,860
And I wanted to make that very clear right from the start.
229
229
00:10:49,860 --> 00:10:51,840
However, I'm also convinced that
230
230
00:10:51,840 --> 00:10:56,840
you need to understand what came before ES2015, so ES5.
231
231
00:10:57,360 --> 00:11:01,750
And so I will also show you what's important of ES5.
232
232
00:11:01,750 --> 00:11:03,880
The reason for that is in a complete video
233
233
00:11:03,880 --> 00:11:07,690
about JavaScript releases at the end of this section,
234
234
00:11:07,690 --> 00:11:11,830
because now I no longer want to bore you with theory.
235
235
00:11:11,830 --> 00:11:15,383
So instead, let's now finally get started.
20814
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.