All language subtitles for 013 let, const and var.en_US1

af Afrikaans
sq Albanian
am Amharic
ar Arabic
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 Download
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,690 --> 00:00:03,280 Let's now take a look at 2 00:00:03,280 --> 00:00:06,270 the three different ways of declaring variables 3 00:00:06,270 --> 00:00:07,543 in JavaScript. 4 00:00:08,810 --> 00:00:11,910 So, up until this point, we have always used 5 00:00:11,910 --> 00:00:14,890 the let keyword to declare variables. 6 00:00:14,890 --> 00:00:18,650 However, there are also const and var. 7 00:00:18,650 --> 00:00:22,570 Now, let and const were introduced in ES6, 8 00:00:22,570 --> 00:00:25,270 and so they are modern JavaScript. 9 00:00:25,270 --> 00:00:29,960 While the var keyword is the old way of declaring variables. 10 00:00:29,960 --> 00:00:33,340 So, let's learn how they are different and which one to use 11 00:00:33,340 --> 00:00:35,640 in which situations. 12 00:00:35,640 --> 00:00:40,300 And let's, again, start by getting rid of this code. 13 00:00:40,300 --> 00:00:43,680 Actually, all I will do is move this to the end 14 00:00:44,540 --> 00:00:47,470 and in the future, I will just do this before recording 15 00:00:47,470 --> 00:00:48,303 the next video. 16 00:00:49,530 --> 00:00:53,690 So anyway, we use the let keyword to declare variables 17 00:00:53,690 --> 00:00:57,291 that can change later so basically during the execution 18 00:00:57,291 --> 00:01:01,890 of our program and that's exactly what we did here. 19 00:01:01,890 --> 00:01:05,460 So, we used let to declare JavaScript is fun, 20 00:01:05,460 --> 00:01:09,693 and then we changed that later from true to yes. 21 00:01:11,140 --> 00:01:16,070 But for example, or another example I would say is 22 00:01:17,290 --> 00:01:22,030 let's set the age to 30 at one point of the program. 23 00:01:22,030 --> 00:01:24,240 And then in another point of the program, 24 00:01:24,240 --> 00:01:27,040 we can change it to something else. 25 00:01:27,040 --> 00:01:31,000 For example, when the person turns 31 26 00:01:31,000 --> 00:01:35,160 and then the age of course changes from 30 to 31. 27 00:01:35,160 --> 00:01:38,250 And so, it's perfectly okay to declare a variable 28 00:01:38,250 --> 00:01:41,210 with let at one point in the program, 29 00:01:41,210 --> 00:01:44,580 and then later assign a new value to it. 30 00:01:44,580 --> 00:01:48,400 In technical terms, we call this reassigning a value to 31 00:01:48,400 --> 00:01:51,638 a variable, or also we say that we mutate 32 00:01:51,638 --> 00:01:54,760 the age variable in this case. 33 00:01:54,760 --> 00:01:57,790 So, it was 30 and now it's 31, 34 00:01:57,790 --> 00:02:01,200 and so we mutated the variable, okay? 35 00:02:01,200 --> 00:02:04,420 So, that's a term that you will hear all the time 36 00:02:04,420 --> 00:02:06,640 in the JavaScript world. 37 00:02:06,640 --> 00:02:08,940 So, when we need to mutate a variable, 38 00:02:08,940 --> 00:02:12,340 that's the perfect use case for using let 39 00:02:12,340 --> 00:02:15,170 and that also counts for the case that we want 40 00:02:15,170 --> 00:02:17,040 to declare empty variables. 41 00:02:17,040 --> 00:02:20,150 So for example, as we did here, where we declared 42 00:02:20,150 --> 00:02:24,430 an empty year and then later reassigned that variable 43 00:02:24,430 --> 00:02:28,600 to 1991, and sometimes we actually do this in practice. 44 00:02:28,600 --> 00:02:31,950 For example, when we want to declare all the variables 45 00:02:31,950 --> 00:02:33,560 at the top of a file, 46 00:02:33,560 --> 00:02:37,450 but only assign actual values to them later in the program, 47 00:02:37,450 --> 00:02:40,160 for example, based on some condition. 48 00:02:40,160 --> 00:02:43,920 Now, on the other hand, we use the const keyword 49 00:02:43,920 --> 00:02:47,280 to declare variables that are not supposed to change 50 00:02:47,280 --> 00:02:49,810 at any point in the future. 51 00:02:49,810 --> 00:02:54,250 So, the value in a const variable cannot be changed. 52 00:02:54,250 --> 00:02:59,250 For example, let's say the birth year, 1991 for example. 53 00:03:05,820 --> 00:03:10,820 If we then tried to reassign that let's say to 1990, 54 00:03:11,190 --> 00:03:12,473 it should not work. 55 00:03:13,570 --> 00:03:18,400 So, let's test that, and indeed we get a type error. 56 00:03:18,400 --> 00:03:22,210 So, assignment to constant variable. 57 00:03:22,210 --> 00:03:25,470 And so, that's exactly what the const keyword does. 58 00:03:25,470 --> 00:03:28,770 It creates a variable that we cannot reassign 59 00:03:28,770 --> 00:03:32,250 or in technical terms, an immutable variable. 60 00:03:32,250 --> 00:03:36,580 So, a variable that cannot be mutated, okay? 61 00:03:36,580 --> 00:03:39,500 And the birth year is a perfect example for that 62 00:03:39,500 --> 00:03:43,850 because in fact, the birth year of a person can never change 63 00:03:43,850 --> 00:03:46,470 while the age of course can change. 64 00:03:46,470 --> 00:03:49,850 And so that's why we used let for the age 65 00:03:49,850 --> 00:03:53,100 and const for the birth year, okay? 66 00:03:53,100 --> 00:03:54,790 That makes sense? 67 00:03:54,790 --> 00:03:56,940 Now the fact that variables created 68 00:03:56,940 --> 00:03:59,840 with const are immutable also means 69 00:03:59,840 --> 00:04:03,720 that we cannot declare empty const variables. 70 00:04:03,720 --> 00:04:07,163 For example, this is not legal. 71 00:04:08,390 --> 00:04:11,500 So, let's comment out this one here, again with command 72 00:04:11,500 --> 00:04:15,253 or control slash so that it doesn't get in our way here. 73 00:04:17,270 --> 00:04:19,750 And then reload, and then we get 74 00:04:19,750 --> 00:04:23,760 an error missing initializer in const declaration. 75 00:04:23,760 --> 00:04:26,010 And so this error message means that 76 00:04:26,010 --> 00:04:30,360 when using const, we need basically an initial value. 77 00:04:30,360 --> 00:04:31,973 Alright, so just like here. 78 00:04:33,050 --> 00:04:36,550 Now with these two different ways of declaring variables, 79 00:04:36,550 --> 00:04:39,460 you will probably ask, should I use let, 80 00:04:39,460 --> 00:04:42,990 or should I use const to declare a new variable? 81 00:04:42,990 --> 00:04:46,850 Well, as a best practice for writing clean code, 82 00:04:46,850 --> 00:04:51,350 I always recommend to use const by default and let only 83 00:04:51,350 --> 00:04:54,850 when you are really sure that the variable needs to change 84 00:04:54,850 --> 00:04:57,200 at some point in the future. 85 00:04:57,200 --> 00:04:59,240 For example, when you have a variable 86 00:04:59,240 --> 00:05:03,260 that's really never supposed to change like this birth year, 87 00:05:03,260 --> 00:05:05,580 you should always use const. 88 00:05:05,580 --> 00:05:07,100 Also, if you are sure 89 00:05:07,100 --> 00:05:10,890 that the age variable is never changing inside your program, 90 00:05:10,890 --> 00:05:13,940 you should declare it using const as well. 91 00:05:13,940 --> 00:05:16,650 The reason for this is that it's a good practice 92 00:05:16,650 --> 00:05:19,390 to have as little variable mutations 93 00:05:19,390 --> 00:05:22,040 or variable changes as possible 94 00:05:22,040 --> 00:05:25,650 because changing variables introduces a potential 95 00:05:25,650 --> 00:05:27,090 to create bugs. 96 00:05:27,090 --> 00:05:30,010 So, basically errors in your code. 97 00:05:30,010 --> 00:05:34,560 So again, by default, always just use const and let, 98 00:05:34,560 --> 00:05:37,500 when you're sure that the value of the variable needs 99 00:05:37,500 --> 00:05:40,570 to change at some point in your code. 100 00:05:40,570 --> 00:05:44,270 And so from now on, I will probably use the const way 101 00:05:44,270 --> 00:05:48,090 of declaring variables as much as possible. 102 00:05:48,090 --> 00:05:50,810 Now, there's also a third way in JavaScript 103 00:05:50,810 --> 00:05:54,610 of declaring variables, which is the var keyword, 104 00:05:54,610 --> 00:05:58,910 but this one should actually be completely avoided, okay? 105 00:05:58,910 --> 00:06:01,760 However, we should still know how it works 106 00:06:01,760 --> 00:06:05,400 for legacy reasons because you will see this maybe 107 00:06:05,400 --> 00:06:08,770 in older code basis or some older tutorials 108 00:06:08,770 --> 00:06:10,670 that you'll find online. 109 00:06:10,670 --> 00:06:13,083 So, let's take a look at how it works. 110 00:06:14,330 --> 00:06:19,230 So, var is basically the old way of defining variables, 111 00:06:19,230 --> 00:06:21,140 prior to ES6. 112 00:06:21,140 --> 00:06:24,280 And at first sight, it works actually pretty much 113 00:06:24,280 --> 00:06:25,963 the same as let. 114 00:06:27,180 --> 00:06:32,180 So, we can write var job equals programmer, 115 00:06:34,250 --> 00:06:37,880 and then just like with let, we can change the value of 116 00:06:37,880 --> 00:06:41,893 the variable later, just like this. 117 00:06:43,270 --> 00:06:47,433 Let's take this one out and let's just reload, 118 00:06:48,370 --> 00:06:50,000 and we didn't get any errors, 119 00:06:50,000 --> 00:06:53,040 which means that it's basically allowed 120 00:06:53,040 --> 00:06:58,040 to mutate this job variable when we use var, right? 121 00:06:58,340 --> 00:07:02,460 Now, although it looks like var and let are very similar, 122 00:07:02,460 --> 00:07:05,510 below the surface, they're actually pretty different. 123 00:07:05,510 --> 00:07:07,540 And actually there are also many differences 124 00:07:07,540 --> 00:07:10,550 between led const and var. 125 00:07:10,550 --> 00:07:12,760 So, between all three of them, 126 00:07:12,760 --> 00:07:15,930 and you will learn all about these differences later 127 00:07:15,930 --> 00:07:17,240 in section seven, 128 00:07:17,240 --> 00:07:20,380 because this is actually really important stuff. 129 00:07:20,380 --> 00:07:23,690 And I know that I keep saying that you will learn 130 00:07:23,690 --> 00:07:25,660 some topics later in the course, 131 00:07:25,660 --> 00:07:29,110 but the truth is that learning is really not linear. 132 00:07:29,110 --> 00:07:32,120 It cannot happen in a linear way. 133 00:07:32,120 --> 00:07:35,840 So, you sometimes need more advanced things right now, 134 00:07:35,840 --> 00:07:37,850 even without understanding them. 135 00:07:37,850 --> 00:07:38,870 But that's not a problem 136 00:07:38,870 --> 00:07:41,540 because you will understand them eventually. 137 00:07:41,540 --> 00:07:45,240 So, right now it would really not be useful for you to know 138 00:07:45,240 --> 00:07:47,470 that the let is block scoped 139 00:07:47,470 --> 00:07:50,380 and that VAR is function-scoped, right? 140 00:07:50,380 --> 00:07:52,590 Because you don't even know what a block 141 00:07:52,590 --> 00:07:54,510 or what a function really is. 142 00:07:54,510 --> 00:07:56,930 And so, we will learn about these differences 143 00:07:56,930 --> 00:07:58,750 in section seven. 144 00:07:58,750 --> 00:08:01,810 For now, what matters is that you should basically 145 00:08:01,810 --> 00:08:05,020 never use var, okay? 146 00:08:05,020 --> 00:08:08,560 Now just to finish, some people will probably point out 147 00:08:08,560 --> 00:08:12,820 that we actually don't even have to declare variables at all 148 00:08:12,820 --> 00:08:15,810 because it's actually not mandatory. 149 00:08:15,810 --> 00:08:18,730 We can just write something like this, 150 00:08:18,730 --> 00:08:23,730 last name equals Schmedtmann in my case. 151 00:08:28,760 --> 00:08:32,460 And then we can just use this variable name in this case 152 00:08:32,460 --> 00:08:34,860 by logging it to the console 153 00:08:34,860 --> 00:08:38,980 and JavaScript will happily execute this script, 154 00:08:38,980 --> 00:08:42,720 even without us declaring a variable, right? 155 00:08:42,720 --> 00:08:47,420 We didn't use let nor const nor a var in this case, 156 00:08:47,420 --> 00:08:49,240 but it still worked. 157 00:08:49,240 --> 00:08:52,950 However, this is actually a pretty terrible idea 158 00:08:52,950 --> 00:08:55,130 because this doesn't create a variable 159 00:08:55,130 --> 00:08:57,940 in the current so-called scope. 160 00:08:57,940 --> 00:09:00,840 Instead, JavaScript will create a property 161 00:09:00,840 --> 00:09:02,760 on the global object. 162 00:09:02,760 --> 00:09:05,520 And once again, you will understand a little bit later 163 00:09:05,520 --> 00:09:08,860 what all of this means, but what matters is 164 00:09:08,860 --> 00:09:13,110 that you should always properly declare variables, okay? 165 00:09:13,110 --> 00:09:15,520 Never just write a variable like this 166 00:09:15,520 --> 00:09:17,942 without really declaring it. 167 00:09:17,942 --> 00:09:19,120 Great. 168 00:09:19,120 --> 00:09:21,300 You're doing great progress here, 169 00:09:21,300 --> 00:09:24,590 even though our code doesn't really do anything yet, 170 00:09:24,590 --> 00:09:28,380 and we're not really writing any real applications yet. 171 00:09:28,380 --> 00:09:32,290 Right, but we still need to get some fundamentals down 172 00:09:32,290 --> 00:09:33,710 before we can do that. 173 00:09:33,710 --> 00:09:36,960 And so that's really important, and that's why I'm stressing 174 00:09:36,960 --> 00:09:39,840 all the little details about everything here. 175 00:09:39,840 --> 00:09:42,620 And I hope you see how important that is 176 00:09:42,620 --> 00:09:44,490 for your progress, okay? 177 00:09:44,490 --> 00:09:47,800 And don't worry, we will get to the cool stuff even 178 00:09:47,800 --> 00:09:51,300 a bit later in this first section, okay? 179 00:09:51,300 --> 00:09:52,520 But for now in the next video, 180 00:09:52,520 --> 00:09:55,843 let's talk about operators in JavaScript. 13830

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