WEBVTT

1
00:00:01.670 --> 00:00:04.930
<v ->Let's now learn some more JavaScript fundamentals.</v>

2
00:00:04.930 --> 00:00:07.000
And in this video in particular,

3
00:00:07.000 --> 00:00:09.653
let's learn about some basic operators.

4
00:00:11.660 --> 00:00:15.760
And let's start by defining what an operator actually is.

5
00:00:15.760 --> 00:00:20.220
So an operator basically allows us to transform values

6
00:00:20.220 --> 00:00:22.530
or combine multiple values

7
00:00:22.530 --> 00:00:26.490
and really do all kinds of work with values.

8
00:00:26.490 --> 00:00:29.410
And there are many categories of operators

9
00:00:29.410 --> 00:00:33.000
like mathematical operators, comparison operators

10
00:00:33.000 --> 00:00:37.950
logical operators, assignment operators, and many more.

11
00:00:37.950 --> 00:00:38.830
So in this video,

12
00:00:38.830 --> 00:00:42.410
let's look at some of these types of operators

13
00:00:42.410 --> 00:00:47.160
starting with mathematical or arithmetic operators.

14
00:00:47.160 --> 00:00:50.370
So we already used the plus and minus operators

15
00:00:50.370 --> 00:00:53.860
but of course we can do all arithmetic operations.

16
00:00:53.860 --> 00:00:58.370
So we can also do multiplication, division and many more.

17
00:00:58.370 --> 00:01:01.650
And let's use the minus operator to calculate ages

18
00:01:01.650 --> 00:01:04.363
based on a person's birth year.

19
00:01:05.650 --> 00:01:10.650
So let's say ageJonas equals so the current year,

20
00:01:11.680 --> 00:01:15.890
and I will simply assume that right now it's 2037.

21
00:01:15.890 --> 00:01:17.990
So that's far in the future

22
00:01:17.990 --> 00:01:22.990
but let's make this a bit fun and then minus a birth year.

23
00:01:23.130 --> 00:01:25.163
So let's say 1991.

24
00:01:26.430 --> 00:01:27.263
Okay.

25
00:01:27.263 --> 00:01:32.067
And then let's just quickly log it to the console.

26
00:01:33.200 --> 00:01:36.803
So ageJonas using the auto-completion here.

27
00:01:39.280 --> 00:01:44.280
And so my age is 46, at least if we are currently in 2037.

28
00:01:46.360 --> 00:01:47.203
Okay.

29
00:01:48.510 --> 00:01:52.430
Now let's do the same for someone else.

30
00:01:52.430 --> 00:01:54.200
So let's say ageSarah

31
00:01:55.850 --> 00:01:57.090
and notice how we're using

32
00:01:57.090 --> 00:02:00.740
nicely descriptive variable names here.

33
00:02:00.740 --> 00:02:04.240
So the age of Jonas and the age of Sarah,

34
00:02:04.240 --> 00:02:08.820
instead of, for example, saying age one and age two.

35
00:02:08.820 --> 00:02:12.007
So again, right now it's 2037

36
00:02:12.007 --> 00:02:15.263
and then let's say Sarah was born in 2018.

37
00:02:16.360 --> 00:02:19.120
So let's log her age to the console as well.

38
00:02:19.120 --> 00:02:22.550
And we could now write the same line as this.

39
00:02:22.550 --> 00:02:24.400
So again, console.log

40
00:02:24.400 --> 00:02:28.080
but we can actually also log multiple values

41
00:02:28.080 --> 00:02:29.730
at the same time.

42
00:02:29.730 --> 00:02:32.290
So for that we just write a comma like this,

43
00:02:32.290 --> 00:02:35.700
and then the second value.

44
00:02:35.700 --> 00:02:39.310
And we could do even more by adding more commas.

45
00:02:39.310 --> 00:02:41.360
So here we could then log something else.

46
00:02:42.430 --> 00:02:43.423
Give it a save.

47
00:02:44.680 --> 00:02:48.960
And so here we see now 46 and 19 years.

48
00:02:48.960 --> 00:02:49.793
Great.

49
00:02:49.793 --> 00:02:52.130
So that's how we used the minus operator

50
00:02:52.130 --> 00:02:54.280
to solve a very simple problem

51
00:02:54.280 --> 00:02:57.950
in this case, simply to calculate an age.

52
00:02:57.950 --> 00:03:00.760
However, we can actually do better here.

53
00:03:00.760 --> 00:03:02.990
That's because we have this value here

54
00:03:02.990 --> 00:03:04.850
that is repeating itself.

55
00:03:04.850 --> 00:03:09.740
So this year 2037 is appearing both here and here.

56
00:03:09.740 --> 00:03:14.080
And so that's not good because we are repeating this value.

57
00:03:14.080 --> 00:03:15.900
So if the year now changes

58
00:03:15.900 --> 00:03:19.160
then we would have to change it in these both places.

59
00:03:19.160 --> 00:03:20.970
And we don't like that.

60
00:03:20.970 --> 00:03:24.760
And so that's why we have the concept of variables.

61
00:03:24.760 --> 00:03:27.380
So instead of having this value here,

62
00:03:27.380 --> 00:03:32.380
let's say now and then we assign this value

63
00:03:33.670 --> 00:03:35.990
to the now variable.

64
00:03:35.990 --> 00:03:36.850
Okay.

65
00:03:36.850 --> 00:03:40.500
And notice how I'm always by default using const.

66
00:03:40.500 --> 00:03:41.333
Okay.

67
00:03:41.333 --> 00:03:42.870
And that's because I'm not changing

68
00:03:42.870 --> 00:03:46.480
any of these variables here anywhere in my code.

69
00:03:46.480 --> 00:03:49.703
Only if I needed to change them, I would switch to that.

70
00:03:51.130 --> 00:03:55.400
Okay. And now here I can replace this one with now

71
00:03:57.160 --> 00:04:02.160
and this one and it should work the same and it does.

72
00:04:02.200 --> 00:04:03.033
Great.

73
00:04:03.033 --> 00:04:07.203
So that's a very good use case for a variable right there.

74
00:04:09.260 --> 00:04:10.480
And of course we can use

75
00:04:10.480 --> 00:04:13.403
all kinds of different math operations.

76
00:04:16.360 --> 00:04:18.450
So let's say console.log

77
00:04:19.340 --> 00:04:20.980
and now we could go ahead into

78
00:04:20.980 --> 00:04:24.500
ageJonas times two,

79
00:04:24.500 --> 00:04:27.723
so using this asterisk or star,

80
00:04:28.630 --> 00:04:30.170
or we could also do

81
00:04:30.170 --> 00:04:34.750
ageJonas and divided by two,

82
00:04:34.750 --> 00:04:38.150
and notice how these are two different calculations here.

83
00:04:38.150 --> 00:04:39.750
So one calculation

84
00:04:39.750 --> 00:04:41.360
and another one,

85
00:04:41.360 --> 00:04:43.600
or basically another operation.

86
00:04:43.600 --> 00:04:46.000
And that's because as I mentioned before,

87
00:04:46.000 --> 00:04:49.000
we can log different values at the same time

88
00:04:49.000 --> 00:04:50.583
in one console.log.

89
00:04:51.470 --> 00:04:54.080
So here we are creating one value

90
00:04:54.080 --> 00:04:56.143
and here we are creating a second value.

91
00:04:57.210 --> 00:04:58.760
Let's actually divide it by 10

92
00:05:00.470 --> 00:05:04.583
and then let's also use the exponentiation operator.

93
00:05:05.610 --> 00:05:10.610
So for example, two to the power of three, okay.

94
00:05:11.230 --> 00:05:15.023
And here we can use a comment to explain what this means.

95
00:05:16.620 --> 00:05:18.970
So that's a nice use case.

96
00:05:18.970 --> 00:05:23.970
So three means two to the power of three,

97
00:05:25.400 --> 00:05:30.310
which is equal to two times two times two.

98
00:05:30.310 --> 00:05:32.940
So three times this,

99
00:05:32.940 --> 00:05:35.493
so this should be eight, right?

100
00:05:37.170 --> 00:05:38.500
Let's try that.

101
00:05:38.500 --> 00:05:43.500
And indeed 46, which is Jonas' age, times two is 92,

102
00:05:45.650 --> 00:05:47.213
then divided by six is 4.6.

103
00:05:49.436 --> 00:05:51.017
So that's this.

104
00:05:51.017 --> 00:05:55.090
And then two to the power of three is indeed eight.

105
00:05:55.090 --> 00:05:55.923
Nice.

106
00:05:57.950 --> 00:06:00.530
Next, there is another use case

107
00:06:00.530 --> 00:06:03.630
that we didn't use yet for the plus operator.

108
00:06:03.630 --> 00:06:06.280
And that's because we can use the plus operator

109
00:06:06.280 --> 00:06:07.950
to join strings,

110
00:06:07.950 --> 00:06:11.453
or in other words, to concatenate different strings.

111
00:06:12.290 --> 00:06:14.820
So let's create two variables,

112
00:06:14.820 --> 00:06:19.350
firstName equals Jonas

113
00:06:22.140 --> 00:06:27.123
and lastName equals Schmedtmann.

114
00:06:28.980 --> 00:06:33.690
And now I can concatenate these two strings using plus.

115
00:06:33.690 --> 00:06:36.700
So let's log that to the console.

116
00:06:36.700 --> 00:06:40.813
So firstName plus lastName.

117
00:06:44.690 --> 00:06:46.710
And let's see.

118
00:06:46.710 --> 00:06:50.060
And indeed we have now one big string

119
00:06:50.060 --> 00:06:53.050
with both of the names together.

120
00:06:53.050 --> 00:06:56.060
So both of the strings that we declared earlier.

121
00:06:56.060 --> 00:06:59.480
But what if we wanted a space in between there?

122
00:06:59.480 --> 00:07:01.500
Well, that's not too hard.

123
00:07:01.500 --> 00:07:04.160
All we need to do is to create another string

124
00:07:04.160 --> 00:07:06.020
which is just a space

125
00:07:06.020 --> 00:07:09.700
and then concatenate it here with these two.

126
00:07:09.700 --> 00:07:11.580
And we can actually do that right here.

127
00:07:11.580 --> 00:07:14.060
So we want this string,

128
00:07:14.060 --> 00:07:16.310
firstName which is just Jonas.

129
00:07:16.310 --> 00:07:18.340
Remember the JavaScript engine

130
00:07:18.340 --> 00:07:22.173
will simply replace this string with this one.

131
00:07:23.030 --> 00:07:25.210
Then we create an empty string

132
00:07:26.490 --> 00:07:28.750
or actually a string with a space

133
00:07:28.750 --> 00:07:32.180
and then we add that one to lastName.

134
00:07:32.180 --> 00:07:37.180
So that's gonna be Jonas plus a space plus Schmedtmann.

135
00:07:38.900 --> 00:07:39.733
Let's see.

136
00:07:40.680 --> 00:07:45.600
And indeed that's exactly the result that we were after.

137
00:07:45.600 --> 00:07:47.400
Now there's actually a better way

138
00:07:47.400 --> 00:07:51.260
of doing this kind of concatenation of strings,

139
00:07:51.260 --> 00:07:53.470
which is called template strings,

140
00:07:53.470 --> 00:07:56.110
but let's focus on operators now.

141
00:07:56.110 --> 00:07:56.950
Okay.

142
00:07:56.950 --> 00:07:58.810
So this is a very useful one

143
00:07:58.810 --> 00:08:01.023
that we actually use quite often.

144
00:08:02.300 --> 00:08:04.050
So another type of operator

145
00:08:04.050 --> 00:08:06.340
is actually the typeof operator,

146
00:08:06.340 --> 00:08:08.860
which we already used up here.

147
00:08:08.860 --> 00:08:10.653
So I'm not gonna do that again.

148
00:08:11.750 --> 00:08:16.740
So remember here we had the typeof operator

149
00:08:16.740 --> 00:08:20.740
and that would then give us the type of the value.

150
00:08:20.740 --> 00:08:23.030
So we already know how that one works.

151
00:08:23.030 --> 00:08:25.220
So let's move on to the next category,

152
00:08:25.220 --> 00:08:27.970
which are assignment operators.

153
00:08:27.970 --> 00:08:30.800
And the most straightforward assignment operator

154
00:08:30.800 --> 00:08:32.700
is just the equal sign.

155
00:08:32.700 --> 00:08:34.580
So let's say,

156
00:08:34.580 --> 00:08:39.550
let x equal 10 plus five.

157
00:08:39.550 --> 00:08:44.150
And so this equal sign here is actually itself an operator,

158
00:08:44.150 --> 00:08:45.000
alright?

159
00:08:45.000 --> 00:08:48.290
So in this line of code, we do actually have two operators.

160
00:08:48.290 --> 00:08:51.143
We have the plus and then the equal.

161
00:08:52.170 --> 00:08:55.610
Now in this case, x will be assigned 15

162
00:08:55.610 --> 00:08:57.950
because the plus operator is executed

163
00:08:57.950 --> 00:09:01.350
before the assignment operator, okay?

164
00:09:01.350 --> 00:09:03.490
And that's based on a couple of rules

165
00:09:03.490 --> 00:09:06.500
about operator proceedings that I'm gonna show you

166
00:09:06.500 --> 00:09:07.853
in the next video.

167
00:09:12.390 --> 00:09:14.760
So let me actually show that to you

168
00:09:14.760 --> 00:09:18.530
that it indeed works as I told you.

169
00:09:18.530 --> 00:09:20.243
And yeah, so it's 15.

170
00:09:21.330 --> 00:09:24.100
So 10 plus five is done first

171
00:09:24.100 --> 00:09:26.380
and then the result of this operation,

172
00:09:26.380 --> 00:09:29.960
which is 15, will then be assigned to x.

173
00:09:29.960 --> 00:09:32.960
And so that itself is another operator

174
00:09:32.960 --> 00:09:35.540
but there are more assignment operators.

175
00:09:35.540 --> 00:09:39.830
So let me show one to you, which is this one,

176
00:09:39.830 --> 00:09:43.960
x plus equal 10.

177
00:09:43.960 --> 00:09:47.260
So we know that at this point after this line

178
00:09:47.260 --> 00:09:49.480
x is 15, right?

179
00:09:49.480 --> 00:09:51.800
So let's write that as a comment.

180
00:09:51.800 --> 00:09:53.720
And then we have this next line.

181
00:09:53.720 --> 00:09:57.150
So this weird x plus equal.

182
00:09:57.150 --> 00:10:00.010
So what does plus equal actually mean?

183
00:10:00.010 --> 00:10:03.800
Well, let's write that again as a comment.

184
00:10:03.800 --> 00:10:08.463
So what this means is x equal x plus 10.

185
00:10:09.770 --> 00:10:11.880
So instead of having to write all of this,

186
00:10:11.880 --> 00:10:16.880
we can simply write x plus equal 10, all right?

187
00:10:17.327 --> 00:10:19.890
And so x should now be 25

188
00:10:19.890 --> 00:10:24.020
because this x year from the previous step is 15.

189
00:10:24.020 --> 00:10:28.200
So here we are basically reassigning the x value.

190
00:10:28.200 --> 00:10:30.280
That's why I used a let here.

191
00:10:30.280 --> 00:10:34.650
So again, x at this point here will be 15

192
00:10:34.650 --> 00:10:37.633
and then 15 plus 10 should be 25.

193
00:10:39.380 --> 00:10:41.773
And indeed it's now 25.

194
00:10:45.430 --> 00:10:48.880
So let's write that result here so that we can keep track

195
00:10:48.880 --> 00:10:50.940
as I show you more operators,

196
00:10:50.940 --> 00:10:52.670
because as you might imagine,

197
00:10:52.670 --> 00:10:55.170
there are more operators like this.

198
00:10:55.170 --> 00:11:00.170
For example, there is x and then times equal four.

199
00:11:01.050 --> 00:11:03.290
And I hope you can imagine

200
00:11:03.290 --> 00:11:08.290
that this will mean x is equal x times four

201
00:11:10.470 --> 00:11:14.773
and this should be in this case 25 times four, so 100.

202
00:11:15.840 --> 00:11:19.870
Let's check and yes, it works.

203
00:11:19.870 --> 00:11:23.623
The same operator also exists with divided here,

204
00:11:24.730 --> 00:11:27.440
but I'm not gonna go into that one.

205
00:11:27.440 --> 00:11:32.240
So to finish, I will just show you the x plus plus operator.

206
00:11:32.240 --> 00:11:34.700
And what this will do is

207
00:11:34.700 --> 00:11:38.163
x equals x plus one.

208
00:11:39.030 --> 00:11:40.260
So let's see.

209
00:11:40.260 --> 00:11:41.937
And yes, we have 101.

210
00:11:45.130 --> 00:11:47.343
And we also have x minus minus.

211
00:11:48.570 --> 00:11:51.270
So if we do that twice now,

212
00:11:51.270 --> 00:11:53.020
what do you think will happen here?

213
00:11:55.530 --> 00:11:58.560
And indeed we get 99.

214
00:11:58.560 --> 00:12:00.400
So minus minus is basically

215
00:12:00.400 --> 00:12:03.060
just the opposite of plus plus.

216
00:12:03.060 --> 00:12:06.440
So this one will decrease the value by one

217
00:12:06.440 --> 00:12:08.793
and so we end up with 99.

218
00:12:10.940 --> 00:12:12.060
Okay.

219
00:12:12.060 --> 00:12:13.300
So let's actually write

220
00:12:13.300 --> 00:12:18.300
that these are assignment operators

221
00:12:19.680 --> 00:12:24.297
and these are, let's say math operators.

222
00:12:26.820 --> 00:12:31.820
And so now let's talk about comparison operators,

223
00:12:33.260 --> 00:12:35.320
and these are pretty great.

224
00:12:35.320 --> 00:12:38.060
So basically, we use comparison operators

225
00:12:38.060 --> 00:12:40.113
to produce Boolean values.

226
00:12:41.440 --> 00:12:43.350
So let me show you how that works

227
00:12:43.350 --> 00:12:45.230
and then I'm sure it will make sense

228
00:12:45.230 --> 00:12:47.870
that the result of a comparison operator

229
00:12:47.870 --> 00:12:49.740
should be a Boolean.

230
00:12:49.740 --> 00:12:52.950
So let's say we are trying to figure out

231
00:12:52.950 --> 00:12:57.950
if ageJonas is greater than ageSarah, right?

232
00:12:59.690 --> 00:13:02.460
So what could the result of this be

233
00:13:02.460 --> 00:13:04.950
if we think about this logically?

234
00:13:04.950 --> 00:13:09.650
So ageJonas can either be greater than Sarah or not.

235
00:13:09.650 --> 00:13:10.690
And so if it is greater

236
00:13:10.690 --> 00:13:13.300
then the result of this should be true

237
00:13:13.300 --> 00:13:14.390
and if it's not,

238
00:13:14.390 --> 00:13:16.313
then it should just be false.

239
00:13:17.660 --> 00:13:21.800
So indeed the result of this one is true

240
00:13:21.800 --> 00:13:26.410
that's because Jonas' age is 46 and Sarah is 19.

241
00:13:26.410 --> 00:13:30.327
So this is basically like asking the operator,

242
00:13:30.327 --> 00:13:34.510
"Is the age of Jonas greater than the age of Sarah?"

243
00:13:34.510 --> 00:13:38.040
And the operator will then essentially reply with

244
00:13:38.040 --> 00:13:40.780
yes, it is, which means true

245
00:13:40.780 --> 00:13:43.910
or no, it's not, which means false.

246
00:13:43.910 --> 00:13:46.260
And this can be very useful later

247
00:13:46.260 --> 00:13:48.980
when we start taking decisions with our code

248
00:13:48.980 --> 00:13:51.710
based on conditions like this.

249
00:13:51.710 --> 00:13:52.660
Okay.

250
00:13:52.660 --> 00:13:55.690
Now of course there's also the less than,

251
00:13:55.690 --> 00:13:57.120
so the opposite,

252
00:13:57.120 --> 00:14:01.400
and also there is greater equal or less than equal.

253
00:14:01.400 --> 00:14:05.770
So basically we have this one and we have this one

254
00:14:05.770 --> 00:14:10.770
then we have greater equal and less than or equal.

255
00:14:12.720 --> 00:14:14.480
So let's see a nice application

256
00:14:14.480 --> 00:14:16.713
of the greater than equal operator.

257
00:14:19.070 --> 00:14:22.780
So let's say we wanted to test if Sarah is of full age.

258
00:14:22.780 --> 00:14:27.400
So that means that she must be at least 18 years old,

259
00:14:27.400 --> 00:14:30.380
and at least means that she is greater than 18

260
00:14:30.380 --> 00:14:32.600
or exactly 18.

261
00:14:32.600 --> 00:14:36.860
And so we can use the appropriate operator for that.

262
00:14:36.860 --> 00:14:40.403
So greater or equal 18.

263
00:14:41.280 --> 00:14:42.113
Okay.

264
00:14:42.113 --> 00:14:44.260
So 18 should already be included

265
00:14:44.260 --> 00:14:46.233
and that's why we have this equal here.

266
00:14:47.930 --> 00:14:49.623
So this should be true.

267
00:14:50.460 --> 00:14:52.700
And yes, it is.

268
00:14:52.700 --> 00:14:56.440
So if we make her one year younger,

269
00:14:56.440 --> 00:15:01.440
so let's say she was born in 2019, then her age is 18,

270
00:15:01.670 --> 00:15:02.990
as you see here,

271
00:15:02.990 --> 00:15:05.140
and she is still of full eight.

272
00:15:05.140 --> 00:15:06.910
So it's still true here.

273
00:15:06.910 --> 00:15:09.570
And that's because we included 18 here

274
00:15:09.570 --> 00:15:13.780
in the age basically by using this equal sign.

275
00:15:13.780 --> 00:15:18.770
But now if we made her born in 2020, she would be 17

276
00:15:18.770 --> 00:15:21.920
and then this should turn out to be false.

277
00:15:21.920 --> 00:15:26.300
So that's checked out and yes, now it's false.

278
00:15:26.300 --> 00:15:27.960
Great.

279
00:15:27.960 --> 00:15:31.520
Now keep in mind that in real development

280
00:15:31.520 --> 00:15:34.670
we would actually store these results here.

281
00:15:34.670 --> 00:15:38.420
So for example, the result of this comparison operator

282
00:15:38.420 --> 00:15:39.910
or this one year,

283
00:15:39.910 --> 00:15:42.610
we would store these results in variables

284
00:15:42.610 --> 00:15:46.100
and not just always lock the results to the console.

285
00:15:46.100 --> 00:15:47.010
Okay.

286
00:15:47.010 --> 00:15:48.840
But in this case, I just wanted to show

287
00:15:48.840 --> 00:15:50.410
how all of this works.

288
00:15:50.410 --> 00:15:51.610
And so we need to console

289
00:15:51.610 --> 00:15:54.950
because really all we want to do is to see the results

290
00:15:54.950 --> 00:15:56.860
because we're still learning.

291
00:15:56.860 --> 00:15:57.940
Okay.

292
00:15:57.940 --> 00:15:59.500
We could also just do all of this

293
00:15:59.500 --> 00:16:02.010
right here in the console immediately

294
00:16:02.010 --> 00:16:04.400
but then we would kind of lose the record

295
00:16:04.400 --> 00:16:05.920
of what we're learning

296
00:16:05.920 --> 00:16:09.510
and it would be not so easy to scroll up and down.

297
00:16:09.510 --> 00:16:10.343
Okay.

298
00:16:10.343 --> 00:16:15.343
But of course we could just do this, right.

299
00:16:15.760 --> 00:16:19.154
We could just write ageSarah greater or equal 18,

300
00:16:19.154 --> 00:16:21.104
and we would still get the same result.

301
00:16:22.020 --> 00:16:25.770
And this works because the console actually has access

302
00:16:25.770 --> 00:16:27.950
to all the variables that is running

303
00:16:27.950 --> 00:16:30.610
in the current browser tab, right.

304
00:16:30.610 --> 00:16:32.930
So all the variables that we have here

305
00:16:32.930 --> 00:16:35.130
like firstName, for example,

306
00:16:35.130 --> 00:16:36.720
they are all right here.

307
00:16:36.720 --> 00:16:38.223
Can even auto complete them.

308
00:16:39.230 --> 00:16:40.230
Okay.

309
00:16:40.230 --> 00:16:44.020
But then again, if we would reload this page now,

310
00:16:44.020 --> 00:16:46.233
then all we just did would be lost.

311
00:16:47.780 --> 00:16:50.233
And of course we could also simply as I said,

312
00:16:51.610 --> 00:16:53.550
just store these results

313
00:16:53.550 --> 00:16:56.040
if we needed them later in our code.

314
00:16:56.040 --> 00:17:01.040
so isFullAge and then we could do this.

315
00:17:03.090 --> 00:17:04.480
And so this variable

316
00:17:04.480 --> 00:17:07.940
would be the one holding the Boolean value then.

317
00:17:07.940 --> 00:17:10.130
And actually as you see here in this popup,

318
00:17:10.130 --> 00:17:14.010
vs code is so smart that it figures out automatically

319
00:17:14.010 --> 00:17:17.030
that this variable here is gonna be a Boolean

320
00:17:17.030 --> 00:17:19.550
because of the code that we wrote here

321
00:17:19.550 --> 00:17:22.693
which of course has a Boolean as a result.

322
00:17:24.610 --> 00:17:25.550
Okay.

323
00:17:25.550 --> 00:17:27.800
So now just to finish,

324
00:17:27.800 --> 00:17:32.010
let's say that we don't want the intermediate age variables

325
00:17:32.010 --> 00:17:34.530
and do this kind of comparison here,

326
00:17:34.530 --> 00:17:36.220
all in one go.

327
00:17:36.220 --> 00:17:37.053
So this here.

328
00:17:38.290 --> 00:17:40.653
So let me show that to you in the code.

329
00:17:42.570 --> 00:17:45.720
So again, imagine we have a lot of code

330
00:17:45.720 --> 00:17:50.100
and we don't want to calculate these ages here separately.

331
00:17:50.100 --> 00:17:51.300
So we could just do

332
00:17:51.300 --> 00:17:55.470
now minus 1991,

333
00:17:55.470 --> 00:18:00.470
and then test if it's greater than now, minus 2020.

334
00:18:02.450 --> 00:18:04.450
Well, let's actually put it back to 2019

335
00:18:05.800 --> 00:18:08.563
as we had before, or actually 2018 I think.

336
00:18:11.800 --> 00:18:16.300
So this now is basically just the same as this year.

337
00:18:16.300 --> 00:18:19.710
We simply are doing it now all in one step.

338
00:18:19.710 --> 00:18:24.550
So this code is the same as this as it's highlighted here.

339
00:18:24.550 --> 00:18:27.570
And this is the same as this one.

340
00:18:27.570 --> 00:18:29.500
And so this whole line of code

341
00:18:29.500 --> 00:18:32.550
is essentially the same as doing this.

342
00:18:32.550 --> 00:18:34.340
Now the big question here is,

343
00:18:34.340 --> 00:18:36.060
how does JavaScript know

344
00:18:36.060 --> 00:18:38.600
if it should do the math first

345
00:18:38.600 --> 00:18:41.860
or if it should do the comparison first, right?

346
00:18:41.860 --> 00:18:43.200
Because we could think

347
00:18:43.200 --> 00:18:47.270
that the first thing to do is to calculate this,

348
00:18:47.270 --> 00:18:49.380
so basically 46

349
00:18:49.380 --> 00:18:54.190
and then JavaScript could compare that 46 to now right away,

350
00:18:54.190 --> 00:18:55.190
right?

351
00:18:55.190 --> 00:18:56.130
That's what would happen

352
00:18:56.130 --> 00:18:59.453
if the operation would simply proceed from left to right.

353
00:19:00.880 --> 00:19:02.780
But we will see that it doesn't.

354
00:19:02.780 --> 00:19:07.290
So we will see that this actually works just fine, right.

355
00:19:07.290 --> 00:19:10.160
And so JavaScript has some way of knowing

356
00:19:10.160 --> 00:19:13.640
that it should first do this operation,

357
00:19:13.640 --> 00:19:15.060
then this one,

358
00:19:15.060 --> 00:19:17.070
so that it has the two numbers

359
00:19:17.070 --> 00:19:18.600
and then only at the end,

360
00:19:18.600 --> 00:19:20.420
once it has the two ages,

361
00:19:20.420 --> 00:19:23.670
it will compare them with this operator in the middle.

362
00:19:23.670 --> 00:19:25.450
So how does that work?

363
00:19:25.450 --> 00:19:28.120
Well, that's what we're gonna talk about, right,

364
00:19:28.120 --> 00:19:29.193
in the next video.

