All language subtitles for 17 - Strings and Template Literals English

af Afrikaans
ak Akan
sq Albanian
am Amharic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bem Bemba
bn Bengali
bh Bihari
bs Bosnian
br Breton
bg Bulgarian
km Cambodian
ca Catalan
ceb Cebuano
chr Cherokee
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
ee Ewe
fo Faroese
tl Filipino
fi Finnish
fr French
fy Frisian
gaa Ga
gl Galician
ka Georgian
de German
el Greek
gn Guarani
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ia Interlingua
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
rw Kinyarwanda
rn Kirundi
kg Kongo
ko Korean
kri Krio (Sierra Leone)
ku Kurdish
ckb Kurdish (SoranĂ®)
ky Kyrgyz
lo Laothian
la Latin
lv Latvian
ln Lingala
lt Lithuanian
loz Lozi
lg Luganda
ach Luo
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mfe Mauritian Creole
mo Moldavian
mn Mongolian
my Myanmar (Burmese)
sr-ME Montenegrin
ne Nepali
pcm Nigerian Pidgin
nso Northern Sotho
no Norwegian
nn Norwegian (Nynorsk)
oc Occitan
or Oriya
om Oromo
ps Pashto
fa Persian
pl Polish
pt-BR Portuguese (Brazil)
pt Portuguese (Portugal)
pa Punjabi
qu Quechua
ro Romanian
rm Romansh
nyn Runyakitara
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
sh Serbo-Croatian
st Sesotho
tn Setswana
crs Seychellois Creole
sn Shona
sd Sindhi
si Sinhalese
sk Slovak
sl Slovenian
so Somali
es Spanish
es-419 Spanish (Latin American)
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
tt Tatar
te Telugu
th Thai
ti Tigrinya
to Tonga
lua Tshiluba
tum Tumbuka
tr Turkish
tk Turkmen
tw Twi
ug Uighur
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
wo Wolof
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
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. 17988

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