All language subtitles for 107 Short Circuiting (&& and __).en_US

af Afrikaans
sq Albanian
am Amharic
ar Arabic Download
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 00:00:01,160 --> 00:00:04,180 Let's go back to two logical operators 2 00:00:04,180 --> 00:00:06,100 that we already used before, 3 00:00:06,100 --> 00:00:08,910 but we didn't use their full potential yet. 4 00:00:08,910 --> 00:00:11,110 And I'm talking about the AND operator 5 00:00:11,110 --> 00:00:12,990 and the OR operator, 6 00:00:12,990 --> 00:00:14,460 and how we can use them 7 00:00:14,460 --> 00:00:17,063 for something called short circuiting. 8 00:00:19,080 --> 00:00:20,690 So up until this point, 9 00:00:20,690 --> 00:00:22,740 we have used logical operators 10 00:00:22,740 --> 00:00:25,480 only to combine Boolean values. 11 00:00:25,480 --> 00:00:27,990 But the truth is that we can do a lot more 12 00:00:27,990 --> 00:00:30,840 with the AND and OR operators. 13 00:00:30,840 --> 00:00:35,400 So let's start with the OR operator here. 14 00:00:35,400 --> 00:00:38,090 And so let me log, three, 15 00:00:38,090 --> 00:00:41,240 or Jonas. 16 00:00:41,240 --> 00:00:44,160 So that's something that we didn't do before, 17 00:00:44,160 --> 00:00:47,912 which is to use basically non Boolean values here 18 00:00:47,912 --> 00:00:50,093 as the operands, okay? 19 00:00:51,010 --> 00:00:54,123 So let's see what the result of this is gonna be, 20 00:00:54,960 --> 00:00:58,150 and for some reason I have to reload here, 21 00:00:58,150 --> 00:01:01,230 and you see that the result is three. 22 00:01:01,230 --> 00:01:03,050 And so that means that the results 23 00:01:03,050 --> 00:01:05,450 of the OR operator doesn't always 24 00:01:05,450 --> 00:01:07,070 have to be a Boolean. 25 00:01:07,070 --> 00:01:09,770 And so that's something that I didn't show you before. 26 00:01:11,780 --> 00:01:13,310 So there are three properties 27 00:01:13,310 --> 00:01:16,890 that I didn't tell you before about logical operators. 28 00:01:16,890 --> 00:01:21,063 So first, they can use any data type. 29 00:01:23,970 --> 00:01:28,430 They can return any data type 30 00:01:28,430 --> 00:01:29,460 and they do something 31 00:01:29,460 --> 00:01:32,293 called short circuiting, 32 00:01:34,870 --> 00:01:38,950 or as we also call it short circuit evaluation. 33 00:01:38,950 --> 00:01:42,090 So in fact, here we used two values 34 00:01:42,090 --> 00:01:44,740 that are not Booleans, okay? 35 00:01:44,740 --> 00:01:46,600 And it then returned a value 36 00:01:46,600 --> 00:01:48,560 that was not a Boolean. 37 00:01:48,560 --> 00:01:51,140 And now about short circuiting, 38 00:01:51,140 --> 00:01:53,210 in the case of the OR operator, 39 00:01:53,210 --> 00:01:56,700 short circuiting means that if the first value 40 00:01:56,700 --> 00:01:58,500 is a truthy value, 41 00:01:58,500 --> 00:02:02,270 it will immediately return that first value. 42 00:02:02,270 --> 00:02:04,100 So that's exactly what we see here 43 00:02:04,100 --> 00:02:07,790 with the three which is a truthy value. 44 00:02:07,790 --> 00:02:12,130 So again, if the first operand is truthy here 45 00:02:12,130 --> 00:02:13,680 in the OR operator, 46 00:02:13,680 --> 00:02:17,300 then the other operand will not even be evaluated. 47 00:02:17,300 --> 00:02:20,480 So JavaScript will not even take a look at it. 48 00:02:20,480 --> 00:02:23,383 And so that's what we mean with short circuiting. 49 00:02:25,689 --> 00:02:27,390 And now let's do some more, 50 00:02:27,390 --> 00:02:29,610 let's use the empty string 51 00:02:29,610 --> 00:02:32,373 or Jonas now. 52 00:02:34,290 --> 00:02:39,023 Then let's say, true or zero, 53 00:02:41,401 --> 00:02:43,903 and then let's say undefined or null. 54 00:02:47,110 --> 00:02:49,830 And now before taking a look at the result, 55 00:02:49,830 --> 00:02:52,170 try to take a guess of what the results 56 00:02:52,170 --> 00:02:54,853 of these three operations here will be. 57 00:02:55,960 --> 00:02:57,520 So did you do that? 58 00:02:57,520 --> 00:02:58,483 So let's see. 59 00:02:59,370 --> 00:03:02,990 So the first result of this one here is Jonas. 60 00:03:02,990 --> 00:03:07,020 And so that's because this here is a falsy value. 61 00:03:07,020 --> 00:03:08,820 And so then, the second operand 62 00:03:08,820 --> 00:03:12,980 will actually also be evaluated, and that's Jonas 63 00:03:12,980 --> 00:03:15,250 and it will then be returned. 64 00:03:15,250 --> 00:03:18,060 And so here we see again that the result 65 00:03:18,060 --> 00:03:19,600 of the OR operator 66 00:03:19,600 --> 00:03:21,780 doesn't have to be a Boolean. 67 00:03:21,780 --> 00:03:25,070 It will simply return the truthy value here. 68 00:03:25,070 --> 00:03:28,100 Next up we have true or zero. 69 00:03:28,100 --> 00:03:30,750 And so this first value here is truthy, 70 00:03:30,750 --> 00:03:32,610 and in fact, it's even true, 71 00:03:32,610 --> 00:03:35,320 and so therefore that will simply be the result 72 00:03:35,320 --> 00:03:36,840 of the operator. 73 00:03:36,840 --> 00:03:38,490 And so that's what we see here. 74 00:03:38,490 --> 00:03:41,840 And then, here we have undefined or null, 75 00:03:41,840 --> 00:03:45,450 and as you already know, undefined is a falsy value, 76 00:03:45,450 --> 00:03:48,360 and so we then go to the second operand, 77 00:03:48,360 --> 00:03:50,380 so there is no short-circuiting, 78 00:03:50,380 --> 00:03:53,670 and so that's then the one that's gonna be returned. 79 00:03:53,670 --> 00:03:55,110 So here we see null, 80 00:03:55,110 --> 00:03:57,480 and that happens even though null 81 00:03:57,480 --> 00:04:00,480 is also a falsy value. 82 00:04:00,480 --> 00:04:02,660 And let's actually now generalize this 83 00:04:02,660 --> 00:04:04,450 to more operators. 84 00:04:04,450 --> 00:04:06,950 So I can give you basically the general rule 85 00:04:06,950 --> 00:04:09,060 of how this operator works, 86 00:04:09,060 --> 00:04:11,520 no matter with how many values. 87 00:04:11,520 --> 00:04:16,100 So let's say undefined or zero 88 00:04:16,100 --> 00:04:18,820 or empty string, 89 00:04:18,820 --> 00:04:21,253 or hello, 90 00:04:22,190 --> 00:04:24,263 or 23, 91 00:04:25,520 --> 00:04:26,793 or null. 92 00:04:27,630 --> 00:04:30,763 So what do you think that the result of this one will be? 93 00:04:32,280 --> 00:04:33,940 And it is hello. 94 00:04:33,940 --> 00:04:36,660 And that's essentially because hello here, 95 00:04:36,660 --> 00:04:38,840 is the first truthy value 96 00:04:38,840 --> 00:04:42,130 in this chain of OR operations. 97 00:04:42,130 --> 00:04:43,720 So we start with this one, 98 00:04:43,720 --> 00:04:46,040 so undefined is falsy. 99 00:04:46,040 --> 00:04:48,887 And so then we go to the next one, which is also falsy. 100 00:04:48,887 --> 00:04:52,440 And so then to the next one, which is also falsy, 101 00:04:52,440 --> 00:04:54,530 and then we get hello 102 00:04:54,530 --> 00:04:56,180 and hello is truthy 103 00:04:56,180 --> 00:05:00,480 and so therefore it will short circuit the entire evaluation 104 00:05:00,480 --> 00:05:03,860 and it will be the returned value, okay? 105 00:05:03,860 --> 00:05:05,800 And if we think about this, 106 00:05:05,800 --> 00:05:07,710 then it actually makes sense. 107 00:05:07,710 --> 00:05:10,310 Because remember, in the OR operation, 108 00:05:10,310 --> 00:05:11,490 the result is true, 109 00:05:11,490 --> 00:05:15,030 if at least one operand is true, right? 110 00:05:15,030 --> 00:05:17,420 So if the first operand is already true, 111 00:05:17,420 --> 00:05:19,890 for example, as it happens here, 112 00:05:19,890 --> 00:05:22,450 then JavaScript doesn't even have to look 113 00:05:22,450 --> 00:05:25,620 at the other values because the result of the expression 114 00:05:25,620 --> 00:05:27,920 will already be true anyway. 115 00:05:27,920 --> 00:05:30,870 And so it will short circuit and then simply return 116 00:05:30,870 --> 00:05:32,093 that first result. 117 00:05:32,940 --> 00:05:37,320 And now let's see a more practical application of this. 118 00:05:37,320 --> 00:05:40,220 So let's say that there might be a property 119 00:05:40,220 --> 00:05:44,040 on the restaurant object with the number of guests. 120 00:05:44,040 --> 00:05:45,493 So something like this: 121 00:05:46,600 --> 00:05:50,410 Restaurant dot num guests, 122 00:05:50,410 --> 00:05:53,520 but again, we don't know if it exists. 123 00:05:53,520 --> 00:05:56,830 However, we want to basically define a variable 124 00:05:56,830 --> 00:05:59,250 based on this number of guests. 125 00:05:59,250 --> 00:06:01,380 And we want to set a default value 126 00:06:01,380 --> 00:06:03,080 if this doesn't exist. 127 00:06:03,080 --> 00:06:05,573 So basically, what we want to do is this. 128 00:06:07,950 --> 00:06:10,943 So guests, I'm gonna call it one here, 129 00:06:12,150 --> 00:06:14,850 and so what we want to do is this, 130 00:06:14,850 --> 00:06:16,810 we want to check if it exists, 131 00:06:16,810 --> 00:06:19,174 and then the result should be 132 00:06:19,174 --> 00:06:23,950 actually restaurant dot num guests, 133 00:06:23,950 --> 00:06:25,620 but if it doesn't exist, 134 00:06:25,620 --> 00:06:29,053 then we want to set a default value of 10. 135 00:06:30,240 --> 00:06:33,133 So let's log guests one to the console, 136 00:06:34,840 --> 00:06:37,210 and so you see that now it is 10. 137 00:06:37,210 --> 00:06:40,360 And so that's because restaurant dot num guests 138 00:06:40,360 --> 00:06:43,017 doesn't exist, so this is undefined, 139 00:06:43,017 --> 00:06:45,980 and so therefore 10 will be the result 140 00:06:45,980 --> 00:06:50,200 of this turnery operator, okay? 141 00:06:50,200 --> 00:06:52,910 But now if we do set the property 142 00:06:54,440 --> 00:06:55,323 like this, 143 00:06:56,250 --> 00:06:58,470 for example, to 23, 144 00:06:58,470 --> 00:07:01,133 then guests one is gonna be 23. 145 00:07:02,020 --> 00:07:04,250 So, but instead of doing this, 146 00:07:04,250 --> 00:07:07,260 we can take advantage of short circuiting 147 00:07:07,260 --> 00:07:08,563 and the OR operator. 148 00:07:10,000 --> 00:07:14,830 So let's again write restaurant dot num guests, 149 00:07:14,830 --> 00:07:18,710 and then simply or 10. 150 00:07:18,710 --> 00:07:20,673 So let's analyze why this works. 151 00:07:21,950 --> 00:07:25,150 And first actually store this into a variable. 152 00:07:25,150 --> 00:07:27,070 So guests two 153 00:07:27,070 --> 00:07:28,040 equals this 154 00:07:29,623 --> 00:07:32,773 and then console log guests two. 155 00:07:33,660 --> 00:07:35,930 So let's take a look at why this works 156 00:07:35,930 --> 00:07:39,390 and starting again with disabling this. 157 00:07:39,390 --> 00:07:42,570 And so right now restaurants dot number of guests 158 00:07:42,570 --> 00:07:43,930 is undefined. 159 00:07:43,930 --> 00:07:45,550 So it's a falsy value, 160 00:07:45,550 --> 00:07:47,040 and as we already know, 161 00:07:47,040 --> 00:07:48,870 then the second value here 162 00:07:48,870 --> 00:07:51,820 will be the result of the OR operator. 163 00:07:51,820 --> 00:07:56,010 And so, that's basically our default value of 10. 164 00:07:56,010 --> 00:07:59,343 So let's take a look and indeed we get 10 here. 165 00:08:00,290 --> 00:08:02,860 But now if we put it back on, 166 00:08:02,860 --> 00:08:07,430 then restaurant dot number of guests is now 23, 167 00:08:07,430 --> 00:08:09,100 which is a truthy value, 168 00:08:09,100 --> 00:08:12,210 and therefore the OR operator short circuits 169 00:08:12,210 --> 00:08:15,480 and it will become the return value, 170 00:08:15,480 --> 00:08:18,850 or let's say the result of the operation. 171 00:08:18,850 --> 00:08:21,720 And so now indeed, we get 23. 172 00:08:21,720 --> 00:08:24,020 And so this is a way easier method 173 00:08:24,020 --> 00:08:25,960 of setting default values 174 00:08:25,960 --> 00:08:28,580 than having to deal with this turnery operator 175 00:08:28,580 --> 00:08:32,960 or even worse an if else statement, okay? 176 00:08:32,960 --> 00:08:36,010 So that is short-circuiting with the AND operator, 177 00:08:36,010 --> 00:08:39,300 but we can also do the same with the OR operator, 178 00:08:39,300 --> 00:08:42,380 but the AND operator also has short circuiting. 179 00:08:42,380 --> 00:08:43,600 So let's take a look 180 00:08:44,500 --> 00:08:48,170 and it will start by log something to the console here, 181 00:08:48,170 --> 00:08:49,833 like a string to separate, 182 00:08:54,360 --> 00:08:57,600 so that we don't get confused by the results 183 00:08:57,600 --> 00:08:58,803 and the console then. 184 00:09:01,500 --> 00:09:05,010 Oh, but before we talk about the AND operator here, 185 00:09:05,010 --> 00:09:06,520 there's actually one more thing 186 00:09:06,520 --> 00:09:08,140 that I need to tell you here, 187 00:09:08,140 --> 00:09:11,350 which is that both of these solutions here, 188 00:09:11,350 --> 00:09:13,630 this and this will not work 189 00:09:13,630 --> 00:09:16,033 when the number of guests is zero. 190 00:09:17,000 --> 00:09:18,300 So let's see what happens. 191 00:09:19,680 --> 00:09:21,940 And so now they're both 10. 192 00:09:21,940 --> 00:09:24,330 And that's not the result that we want, 193 00:09:24,330 --> 00:09:27,330 but given what we already know, it makes sense 194 00:09:27,330 --> 00:09:28,950 because this is now zero, 195 00:09:28,950 --> 00:09:30,630 so it's a falsy value, 196 00:09:30,630 --> 00:09:33,840 and therefore the second one here will be the result 197 00:09:33,840 --> 00:09:38,220 of the operation and therefore assigned to guests two. 198 00:09:38,220 --> 00:09:41,720 However, zero is the real number of guests. 199 00:09:41,720 --> 00:09:43,580 And so that's the value that we actually 200 00:09:43,580 --> 00:09:46,680 would guests two to have. 201 00:09:46,680 --> 00:09:49,900 But instead it's set the default value of 10. 202 00:09:49,900 --> 00:09:52,480 So that's obviously not what we want 203 00:09:52,480 --> 00:09:55,360 and we will explore a great solution to this problem 204 00:09:55,360 --> 00:09:56,810 actually in the next lecture. 205 00:09:58,470 --> 00:10:02,270 But now, let's talk about the AND operator. 206 00:10:02,270 --> 00:10:06,090 And basically when it comes to short circuit evaluation, 207 00:10:06,090 --> 00:10:09,570 the AND operator works in the exact opposite way 208 00:10:09,570 --> 00:10:11,313 of the OR operator. 209 00:10:12,940 --> 00:10:14,330 So let's see. 210 00:10:14,330 --> 00:10:18,950 Zero and Jonas. 211 00:10:18,950 --> 00:10:22,280 And now the result of this is zero. 212 00:10:22,280 --> 00:10:24,120 And so what this means is that 213 00:10:24,120 --> 00:10:26,350 the AND operator short circuits, 214 00:10:26,350 --> 00:10:29,160 when the first value is falsy. 215 00:10:29,160 --> 00:10:32,320 And then immediately returns that falsy value 216 00:10:32,320 --> 00:10:35,710 without even evaluating the second operand. 217 00:10:39,440 --> 00:10:41,240 So again, that's exactly the opposite 218 00:10:41,240 --> 00:10:44,260 of what happens with the OR operator, 219 00:10:44,260 --> 00:10:47,823 which short circuits when the first operator is true. 220 00:10:49,500 --> 00:10:52,840 So let's now set it to a true value here, 221 00:10:52,840 --> 00:10:54,800 or actually a truthy value. 222 00:10:54,800 --> 00:10:59,310 And then at this case, Jonas is actually returned. 223 00:10:59,310 --> 00:11:03,847 So when it is truthy, it means that the evaluation continues 224 00:11:03,847 --> 00:11:07,350 and then simply the last value is returned. 225 00:11:07,350 --> 00:11:11,110 And once again, this makes sense if we think about it. 226 00:11:11,110 --> 00:11:13,670 So the AND operator is only true 227 00:11:13,670 --> 00:11:16,020 if all the operands are true. 228 00:11:16,020 --> 00:11:19,090 And so, if the first one here is false, 229 00:11:19,090 --> 00:11:22,430 then it means that the entire result of the AND operation 230 00:11:22,430 --> 00:11:24,500 will already be false anyway. 231 00:11:24,500 --> 00:11:26,520 And so there is no need to even look 232 00:11:26,520 --> 00:11:28,643 at any of the other operands. 233 00:11:30,040 --> 00:11:32,150 So I think that's a good way to memorize 234 00:11:32,150 --> 00:11:34,203 how both of them work. 235 00:11:35,270 --> 00:11:38,040 Anyway, let's again generalize. 236 00:11:38,040 --> 00:11:40,930 Add this to multiple operands here 237 00:11:40,930 --> 00:11:42,980 and 23, 238 00:11:42,980 --> 00:11:44,193 and null, 239 00:11:45,730 --> 00:11:48,590 and Jonas, 240 00:11:48,590 --> 00:11:53,230 and so what do you think this time the result will be? 241 00:11:53,230 --> 00:11:55,150 Well, let's see. 242 00:11:55,150 --> 00:11:57,450 And it is indeed null. 243 00:11:57,450 --> 00:12:01,700 And to understand why let's apply the same logic as before. 244 00:12:01,700 --> 00:12:03,560 So this is a truthy value, 245 00:12:03,560 --> 00:12:06,130 and therefore the evaluation continues, 246 00:12:06,130 --> 00:12:08,163 23 is also truthy, 247 00:12:08,163 --> 00:12:10,670 but then null is a falsy value 248 00:12:10,670 --> 00:12:14,120 and therefore evaluation no longer needs to continue 249 00:12:14,120 --> 00:12:16,360 because at this point, the whole result 250 00:12:16,360 --> 00:12:19,760 of the end operation is gonna be false anyway. 251 00:12:19,760 --> 00:12:21,390 And then as a result, 252 00:12:21,390 --> 00:12:24,390 this is then simply the value that's gonna be returned 253 00:12:24,390 --> 00:12:27,810 and it's short circuits the rest of the evaluation. 254 00:12:27,810 --> 00:12:30,923 So it will not even take a look at Jonas here. 255 00:12:33,610 --> 00:12:34,460 Alright. 256 00:12:34,460 --> 00:12:38,150 And so now let's see another practical example. 257 00:12:38,150 --> 00:12:40,250 So, let's say 258 00:12:40,250 --> 00:12:45,250 if restaurant dot order, order pizza. 259 00:12:46,930 --> 00:12:49,720 So basically we're checking if this method exists 260 00:12:50,570 --> 00:12:52,240 and then if it does exist, 261 00:12:52,240 --> 00:12:53,863 we want to call it. 262 00:12:54,780 --> 00:12:58,143 So restaurant dot order pizza, 263 00:12:59,310 --> 00:13:02,150 let's say with mushrooms 264 00:13:03,870 --> 00:13:05,143 and spinach. 265 00:13:09,730 --> 00:13:12,300 So many times we can use the AND operator 266 00:13:12,300 --> 00:13:16,090 to actually avoid an if statement like this one, 267 00:13:16,090 --> 00:13:18,330 where all we want to do is to check 268 00:13:18,330 --> 00:13:22,253 if a certain property or value actually exists. 269 00:13:24,660 --> 00:13:26,450 Okay, so in this case here, 270 00:13:26,450 --> 00:13:28,940 what we're doing is to basically pretending 271 00:13:28,940 --> 00:13:32,030 that we don't know if order pizza exists. 272 00:13:32,030 --> 00:13:34,630 And so we first check if it exists 273 00:13:34,630 --> 00:13:36,293 and only then we execute it. 274 00:13:37,620 --> 00:13:41,010 And so this now gives us mushrooms and spinach, 275 00:13:41,010 --> 00:13:42,790 but with the knowledge that we gained 276 00:13:42,790 --> 00:13:44,880 about the AND operator, 277 00:13:44,880 --> 00:13:46,623 we can do this in a simpler way. 278 00:13:48,220 --> 00:13:52,123 So we can say restaurant dot order pizza, 279 00:13:56,301 --> 00:14:00,430 and then basically if restaurant dot order pizza 280 00:14:00,430 --> 00:14:03,070 does not exist, so it's undefined, 281 00:14:03,070 --> 00:14:05,580 it will then short circuit the evaluation 282 00:14:05,580 --> 00:14:07,650 and nothing else will happen. 283 00:14:07,650 --> 00:14:09,960 And so that's essentially exactly the same 284 00:14:09,960 --> 00:14:11,913 as this if block here is doing. 285 00:14:13,120 --> 00:14:15,250 All right, but if it does exist. 286 00:14:15,250 --> 00:14:17,173 So if it's a truthy value, 287 00:14:17,173 --> 00:14:20,120 then the second part here will be evaluated. 288 00:14:20,120 --> 00:14:22,830 And so here in this second operand, 289 00:14:22,830 --> 00:14:26,053 we can then call the function. 290 00:14:33,560 --> 00:14:34,400 Okay. 291 00:14:34,400 --> 00:14:37,280 And it's perfectly fine to use this operands, 292 00:14:37,280 --> 00:14:39,843 the second operand` here to call a function. 293 00:14:39,843 --> 00:14:41,560 We can put anything here. 294 00:14:41,560 --> 00:14:44,163 It doesn't just have to be a single value. 295 00:14:46,070 --> 00:14:48,520 Now I'm not saying that you should go ahead 296 00:14:48,520 --> 00:14:50,890 and replace all your if statements 297 00:14:50,890 --> 00:14:53,850 with the AND or the OR operators, 298 00:14:53,850 --> 00:14:56,370 so please definitely don't do that 299 00:14:56,370 --> 00:14:58,880 because it's gonna make your code very hard 300 00:14:58,880 --> 00:15:01,020 to read in the future. 301 00:15:01,020 --> 00:15:03,570 But anyway, let's now summarize. 302 00:15:03,570 --> 00:15:07,580 So the OR operator will return the first truthy value 303 00:15:07,580 --> 00:15:09,290 of all the operands, 304 00:15:09,290 --> 00:15:13,210 or simply the last value if all of them are falsy. 305 00:15:13,210 --> 00:15:17,300 So that's what happened here, right? 306 00:15:17,300 --> 00:15:18,600 On the other hand, 307 00:15:18,600 --> 00:15:22,900 the AND operator will return the first falsy value 308 00:15:22,900 --> 00:15:26,470 or the last value if all of them are truthy. 309 00:15:26,470 --> 00:15:28,590 And as for practical applications, 310 00:15:28,590 --> 00:15:32,310 we can use the OR operator to set default values, 311 00:15:32,310 --> 00:15:34,360 and we can use the AND operator 312 00:15:34,360 --> 00:15:37,870 to execute code in the second operand 313 00:15:37,870 --> 00:15:40,510 if the first one is true. 314 00:15:40,510 --> 00:15:43,020 So play around some more with this maybe, 315 00:15:43,020 --> 00:15:45,570 and then let's just move on to the next video 316 00:15:45,570 --> 00:15:48,860 where we will solve this problem that we had here 317 00:15:48,860 --> 00:15:51,260 with this OR operator 318 00:15:51,260 --> 00:15:52,653 and this zero. 22272

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.