All language subtitles for 017 Strings and Template Literals.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,020 --> 00:00:04,840 Strings are a very important part of programming. 2 00:00:04,840 --> 00:00:07,350 And so let's now learn about an easy way 3 00:00:07,350 --> 00:00:08,930 to build strings, 4 00:00:08,930 --> 00:00:11,603 using something called template literals. 5 00:00:12,980 --> 00:00:14,480 And let's start by creating 6 00:00:14,480 --> 00:00:17,630 some new variables here about a person, 7 00:00:17,630 --> 00:00:19,593 and in this case, about me, 8 00:00:20,620 --> 00:00:23,228 so that we can then concatenate them 9 00:00:23,228 --> 00:00:25,536 into one big string. 10 00:00:25,536 --> 00:00:27,619 (typing) 11 00:00:32,700 --> 00:00:33,653 And the, 12 00:00:35,140 --> 00:00:36,080 birth year. 13 00:00:39,410 --> 00:00:41,460 Okay, and so let's now use 14 00:00:41,460 --> 00:00:44,080 these variables to build a string, 15 00:00:44,080 --> 00:00:46,230 something like, I'm Jonas, 16 00:00:46,230 --> 00:00:49,930 a 40 or 30 year old teacher. 17 00:00:49,930 --> 00:00:52,380 So we're going to then use this birth year 18 00:00:52,380 --> 00:00:54,433 to calculate the age of course. 19 00:00:56,020 --> 00:00:57,780 So let's call that one, 20 00:00:57,780 --> 00:00:59,580 simply, Jonas. 21 00:00:59,580 --> 00:01:00,900 And as we already learned 22 00:01:00,900 --> 00:01:02,920 in one of the previous lectures, 23 00:01:02,920 --> 00:01:04,330 we can use the plus sign 24 00:01:04,330 --> 00:01:06,110 to concatenate strings. 25 00:01:06,110 --> 00:01:08,940 And so let's now start by doing that. 26 00:01:08,940 --> 00:01:10,180 So, I want to write, 27 00:01:10,180 --> 00:01:12,944 I'm, and here I'm seeing a problem. 28 00:01:12,944 --> 00:01:15,710 So when I want to use this single quote here 29 00:01:15,710 --> 00:01:19,100 for writing something like I'm, or isn't, 30 00:01:19,100 --> 00:01:21,950 so basically when I need this symbol here 31 00:01:22,910 --> 00:01:25,320 then I need to write the string itself, 32 00:01:25,320 --> 00:01:27,830 using double quotes, okay, 33 00:01:27,830 --> 00:01:29,900 because otherwise the single quote 34 00:01:29,900 --> 00:01:32,933 that I'm using here for I'm will finish the string. 35 00:01:33,890 --> 00:01:37,400 So, I'm, and then I need a space, 36 00:01:37,400 --> 00:01:38,233 then the plus. 37 00:01:39,080 --> 00:01:41,273 And so here I'm saying, I'm Jonas, 38 00:01:44,350 --> 00:01:47,130 and now I can actually use the single quotes. 39 00:01:47,130 --> 00:01:49,390 So what matters is that in each string, 40 00:01:49,390 --> 00:01:53,780 we start and finish with the same symbol, 41 00:01:53,780 --> 00:01:54,613 right. 42 00:01:54,613 --> 00:01:57,003 But both just create strings, the same way. 43 00:01:57,880 --> 00:02:02,290 So right now we have, I'm Jonas, comma, A, 44 00:02:02,290 --> 00:02:03,700 and now we want the age, 45 00:02:03,700 --> 00:02:06,870 so let's say, a 30 year old teacher. 46 00:02:06,870 --> 00:02:08,370 So we need another space here, 47 00:02:10,820 --> 00:02:13,210 and then let's actually calculate the age. 48 00:02:13,210 --> 00:02:15,450 So that's the current year 49 00:02:15,450 --> 00:02:17,053 so let's put that here as well, 50 00:02:18,770 --> 00:02:23,373 and let's again say that the year is 2037. 51 00:02:24,480 --> 00:02:26,890 So plus year, 52 00:02:26,890 --> 00:02:30,410 minus the birth year. 53 00:02:30,410 --> 00:02:32,380 Now in order to make this work, 54 00:02:32,380 --> 00:02:34,760 we actually need to put this operation 55 00:02:34,760 --> 00:02:36,063 between parenthesis. 56 00:02:38,450 --> 00:02:39,350 Like this. 57 00:02:39,350 --> 00:02:41,350 And so it will do the calculation first, 58 00:02:41,350 --> 00:02:43,260 and then the concatenation. 59 00:02:43,260 --> 00:02:44,640 But you might be wondering, 60 00:02:44,640 --> 00:02:48,100 well the result of this is going to be a number. 61 00:02:48,100 --> 00:02:49,070 Right? 62 00:02:49,070 --> 00:02:50,140 But the rest of the things 63 00:02:50,140 --> 00:02:52,150 that we're adding here are strings. 64 00:02:52,150 --> 00:02:53,990 So how is this gonna work? 65 00:02:53,990 --> 00:02:55,600 Well, this has to do with something 66 00:02:55,600 --> 00:02:56,996 called type coercion, 67 00:02:56,996 --> 00:02:58,330 which is something that we're going 68 00:02:58,330 --> 00:03:01,170 to talk about a little bit later in the section. 69 00:03:01,170 --> 00:03:03,210 But basically JavaScript will simply 70 00:03:03,210 --> 00:03:05,530 convert this number to a string, 71 00:03:05,530 --> 00:03:07,600 so that it can concatenate them 72 00:03:07,600 --> 00:03:08,980 so that it can join them 73 00:03:08,980 --> 00:03:10,760 with the rest of the strings. 74 00:03:10,760 --> 00:03:12,080 So you will see that it's going 75 00:03:12,080 --> 00:03:13,203 to work just fine. 76 00:03:16,160 --> 00:03:18,273 Okay, years old. 77 00:03:20,150 --> 00:03:20,983 And then, 78 00:03:20,983 --> 00:03:22,193 the job. 79 00:03:24,490 --> 00:03:26,610 Then we can finish with 80 00:03:26,610 --> 00:03:29,593 an exclamation mark or something like that. 81 00:03:30,650 --> 00:03:32,220 Now right, and then, 82 00:03:32,220 --> 00:03:34,607 let's also log this to the console 83 00:03:34,607 --> 00:03:37,053 so we can take a look at it. 84 00:03:39,090 --> 00:03:40,660 Okay, 85 00:03:40,660 --> 00:03:45,100 so, I'm Jonas a 46 years old teacher, 86 00:03:45,100 --> 00:03:46,913 and we're missing some spaces here. 87 00:03:47,870 --> 00:03:49,623 So that's around the years old, 88 00:03:50,970 --> 00:03:52,870 and you see that this is kind of a pain 89 00:03:52,870 --> 00:03:54,450 to manage these spaces 90 00:03:54,450 --> 00:03:58,500 and what to keep track kind of, 91 00:03:58,500 --> 00:04:00,563 of how the sentence is structured. 92 00:04:02,140 --> 00:04:04,940 And so we will see a great solution to that in a second. 93 00:04:05,890 --> 00:04:07,400 So now it works. 94 00:04:07,400 --> 00:04:10,720 And, yeah, just as expected. 95 00:04:10,720 --> 00:04:11,960 So as I was saying, 96 00:04:11,960 --> 00:04:14,490 for a complex string like this one, 97 00:04:14,490 --> 00:04:16,230 this can be kind of a pain. 98 00:04:16,230 --> 00:04:18,510 And so that's why starting with ESXi, 99 00:04:18,510 --> 00:04:20,140 we have a much better tool 100 00:04:20,140 --> 00:04:22,140 for doing this kind of stuff now, 101 00:04:22,140 --> 00:04:24,930 which is called, Template literals. 102 00:04:24,930 --> 00:04:26,230 So with template literals, 103 00:04:26,230 --> 00:04:29,140 we can write a string in a more normal way, 104 00:04:29,140 --> 00:04:31,840 and then basically insert the variables 105 00:04:31,840 --> 00:04:33,540 directly into the string 106 00:04:33,540 --> 00:04:36,320 and then they will simply be replaced. 107 00:04:36,320 --> 00:04:38,470 So basically a template literal 108 00:04:38,470 --> 00:04:42,710 can assemble multiple pieces into one final string. 109 00:04:42,710 --> 00:04:44,410 So let me show you how that works. 110 00:04:47,110 --> 00:04:48,350 So let's call this one, 111 00:04:48,350 --> 00:04:49,950 Jonas 112 00:04:49,950 --> 00:04:50,783 new. 113 00:04:53,340 --> 00:04:55,280 And now to write a template literal, 114 00:04:55,280 --> 00:04:57,550 we need to use backticks. 115 00:04:57,550 --> 00:04:59,900 So that's this symbol here. 116 00:04:59,900 --> 00:05:01,080 And on the English keyboard, 117 00:05:01,080 --> 00:05:03,403 you will find this one above the tab key. 118 00:05:06,340 --> 00:05:09,650 So again, we really need to use these backticks 119 00:05:09,650 --> 00:05:12,880 to tell JavaScript that we're writing a template string, 120 00:05:12,880 --> 00:05:15,860 the single quotes or double quotes won't work 121 00:05:15,860 --> 00:05:17,760 for what we're going to do now. 122 00:05:17,760 --> 00:05:20,640 So now, as I said, we simply write a string 123 00:05:20,640 --> 00:05:23,170 and insert the variables in there. 124 00:05:23,170 --> 00:05:24,570 So I'm. 125 00:05:24,570 --> 00:05:28,370 And then we use the dollar sign, curly braces, 126 00:05:28,370 --> 00:05:31,490 and then the variable name. 127 00:05:31,490 --> 00:05:33,890 So, I'm, first name, 128 00:05:33,890 --> 00:05:36,550 and just to see if this actually works 129 00:05:36,550 --> 00:05:38,393 let's log it to a console. 130 00:05:40,960 --> 00:05:42,453 So that's Jonas new. 131 00:05:45,480 --> 00:05:47,523 And indeed, I'm Jonas. 132 00:05:48,360 --> 00:05:50,290 So you see that this is much easier, 133 00:05:50,290 --> 00:05:52,407 because all we have is this one string, 134 00:05:52,407 --> 00:05:55,210 and then here we used this syntax 135 00:05:55,210 --> 00:05:57,820 to insert the first name variable. 136 00:05:57,820 --> 00:05:59,260 And now we can continue this 137 00:05:59,260 --> 00:06:01,570 and it's going to be a lot easier. 138 00:06:01,570 --> 00:06:02,403 A, 139 00:06:04,050 --> 00:06:06,210 and then again, a variable. 140 00:06:06,210 --> 00:06:08,860 Now in this case, we actually need a calculation, 141 00:06:08,860 --> 00:06:10,490 and that's no problem at all. 142 00:06:10,490 --> 00:06:13,530 We can basically write any JavaScript here 143 00:06:13,530 --> 00:06:15,780 inside of these curly braces. 144 00:06:15,780 --> 00:06:17,040 All right. 145 00:06:17,040 --> 00:06:19,230 Technically, we can write any expressions, 146 00:06:19,230 --> 00:06:22,673 but more about expressions in one of the later lectures. 147 00:06:23,990 --> 00:06:26,820 So year, minus birth year, 148 00:06:26,820 --> 00:06:28,950 just as we did above, 149 00:06:28,950 --> 00:06:30,610 year 150 00:06:30,610 --> 00:06:31,443 old, 151 00:06:33,860 --> 00:06:36,023 and then, teacher. 152 00:06:37,370 --> 00:06:38,870 So no plus signs. 153 00:06:38,870 --> 00:06:41,970 No, thinking where we should put the spaces 154 00:06:41,970 --> 00:06:42,973 like we did here. 155 00:06:44,550 --> 00:06:47,000 And so this is a lot easier, 156 00:06:47,000 --> 00:06:47,893 let's reload. 157 00:06:48,890 --> 00:06:51,440 Oh, and indeed there is a bug here 158 00:06:51,440 --> 00:06:54,120 so of course that's not teacher. 159 00:06:54,120 --> 00:06:57,200 That's actually the value of the variable, job, 160 00:06:57,200 --> 00:06:58,850 that we're interested in here. 161 00:06:58,850 --> 00:07:01,710 But once again, we found this bug, 162 00:07:01,710 --> 00:07:04,780 because we simply read the error message. 163 00:07:04,780 --> 00:07:07,520 So get into this habit of always reading 164 00:07:07,520 --> 00:07:09,560 the error message to try to figure out 165 00:07:09,560 --> 00:07:11,623 where you are wrong. All right. 166 00:07:12,580 --> 00:07:14,310 And now of course it works 167 00:07:14,310 --> 00:07:16,250 and I hope that you can see 168 00:07:16,250 --> 00:07:20,280 that this is a way easier way of writing this string. 169 00:07:20,280 --> 00:07:22,860 This really kind of assembles the string 170 00:07:22,860 --> 00:07:25,480 using the pieces that we give it. 171 00:07:25,480 --> 00:07:28,120 For example this variable here 172 00:07:28,120 --> 00:07:31,673 or this value that is produced by the minus operator. 173 00:07:32,520 --> 00:07:33,353 Great. 174 00:07:33,353 --> 00:07:37,070 So now you know how template strings work in JavaScript, 175 00:07:37,070 --> 00:07:39,230 and in particular in ESXi. 176 00:07:39,230 --> 00:07:42,910 And actually it's one of the most used ESXi features 177 00:07:42,910 --> 00:07:47,330 it's really amazing and really useful in many situations. 178 00:07:47,330 --> 00:07:49,380 Now I just wanted to let you know 179 00:07:49,380 --> 00:07:51,910 that we can actually also use backticks 180 00:07:51,910 --> 00:07:53,650 to write all strings. 181 00:07:53,650 --> 00:07:55,760 So strings, where we do not, 182 00:07:55,760 --> 00:07:59,703 insert any of these kind of placeholders here, like this. 183 00:08:01,220 --> 00:08:03,743 So, we just demonstrated to you. 184 00:08:05,290 --> 00:08:08,473 So we can use backticks for any irregular string. 185 00:08:13,430 --> 00:08:16,773 So, you see that it works here just the same. 186 00:08:18,180 --> 00:08:21,440 And many developers actually started using backticks 187 00:08:21,440 --> 00:08:22,690 for all strings, 188 00:08:22,690 --> 00:08:24,340 because then you don't have to think 189 00:08:24,340 --> 00:08:27,000 about which quotation marks you should use, 190 00:08:27,000 --> 00:08:29,460 you just use backticks, always. 191 00:08:29,460 --> 00:08:31,783 And then in case you need to insert a variable, 192 00:08:31,783 --> 00:08:34,290 then it's much easier than to go back 193 00:08:34,290 --> 00:08:36,950 and switch out the regular quotes. 194 00:08:36,950 --> 00:08:38,710 So that's a choice that you can make. 195 00:08:38,710 --> 00:08:41,097 I actually don't do that myself, 196 00:08:41,097 --> 00:08:44,063 but I can see that it actually makes sense. 197 00:08:45,200 --> 00:08:46,033 All right. 198 00:08:46,033 --> 00:08:49,180 Now another great use case of template literals 199 00:08:49,180 --> 00:08:51,670 is to create multiline strings. 200 00:08:51,670 --> 00:08:53,100 So that's something that, 201 00:08:53,100 --> 00:08:56,660 before template strings was a bit cumbersome to write. 202 00:08:56,660 --> 00:08:59,596 So let me just show that to you. 203 00:08:59,596 --> 00:09:04,280 So if you wanted a multiline string before ESXi, 204 00:09:04,280 --> 00:09:08,317 you would have to write, string, with, 205 00:09:08,317 --> 00:09:11,280 and then you needed this backslash, n, 206 00:09:11,280 --> 00:09:14,690 which in many programming languages means new line. 207 00:09:14,690 --> 00:09:15,523 All right. 208 00:09:15,523 --> 00:09:18,710 So basically this is like a special character in 209 00:09:18,710 --> 00:09:20,780 programming, which in strings, 210 00:09:20,780 --> 00:09:23,890 always means that a new line should be created. 211 00:09:23,890 --> 00:09:24,970 And then in JavaScript, 212 00:09:24,970 --> 00:09:28,140 we would need another backslash like this, 213 00:09:28,140 --> 00:09:31,883 and then we could move to the next line and continue here. 214 00:09:33,380 --> 00:09:36,563 Multiple, let's create a new one, 215 00:09:37,800 --> 00:09:39,083 and then the lines. 216 00:09:40,430 --> 00:09:43,460 And this actually only works because of a bug, 217 00:09:43,460 --> 00:09:44,633 that's in the language. 218 00:09:45,600 --> 00:09:46,593 But let's see. 219 00:09:48,050 --> 00:09:50,560 So we get string with multiple lines, 220 00:09:50,560 --> 00:09:52,830 and you see that it's all the same string 221 00:09:53,730 --> 00:09:57,120 but yeah, spread across multiple lines. 222 00:09:57,120 --> 00:09:59,639 But indeed now with template strings, 223 00:09:59,639 --> 00:10:02,070 there is an easier way of doing this. 224 00:10:02,070 --> 00:10:06,360 So all we have to do is simply hit return, 225 00:10:06,360 --> 00:10:09,653 and it will create a new line for us. 226 00:10:11,470 --> 00:10:13,920 And this is actually going to be immensely useful 227 00:10:13,920 --> 00:10:18,220 later when we start building HTML from JavaScript. 228 00:10:18,220 --> 00:10:21,300 So by then we will be able to use these backticks 229 00:10:21,300 --> 00:10:23,800 to create multiline HTML elements 230 00:10:23,800 --> 00:10:27,060 to insert them onto a page, dynamically. 231 00:10:27,060 --> 00:10:28,810 So that's going to be a lot of fun. 232 00:10:30,930 --> 00:10:32,470 Let's just see if this works, 233 00:10:32,470 --> 00:10:34,990 and indeed it does. 234 00:10:34,990 --> 00:10:37,170 So whenever you need a multiline string, 235 00:10:37,170 --> 00:10:41,170 you always make sure to use this template literal 236 00:10:41,170 --> 00:10:43,590 because it's a lot cleaner. 237 00:10:43,590 --> 00:10:47,660 Alright, and that's actually it about template literals. 238 00:10:47,660 --> 00:10:48,493 In the next lecture, 239 00:10:48,493 --> 00:10:50,540 we will finally start to make or code, 240 00:10:50,540 --> 00:10:52,220 a lot more fun 241 00:10:52,220 --> 00:10:55,593 and take it to the next level by taking decisions. 16301

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