All language subtitles for 25. JavaScript Releases ES5, ES6+ and ESNext

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
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 Download
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 1 00:00:01,230 --> 00:00:03,900 Now that you're familiar with the fundamentals 2 2 00:00:03,900 --> 00:00:05,630 of the JavaScript language. 3 3 00:00:05,630 --> 00:00:08,250 We need to talk about JavaScript or releases 4 4 00:00:08,250 --> 00:00:11,290 or versions before moving on. 5 5 00:00:11,290 --> 00:00:14,430 And we briefly talked about this in the intro video, 6 6 00:00:14,430 --> 00:00:16,502 but now let's go into more depth 7 7 00:00:16,502 --> 00:00:18,500 because it's really important 8 8 00:00:18,500 --> 00:00:21,095 to know about how JavaScript releases work 9 9 00:00:21,095 --> 00:00:22,794 and how we can use them. 10 10 00:00:22,794 --> 00:00:25,653 It's important for your work as a web developer, 11 11 00:00:25,653 --> 00:00:29,130 and also because you will see these topics coming up 12 12 00:00:29,130 --> 00:00:31,690 in the developer community all the time. 13 13 00:00:31,690 --> 00:00:34,963 And so you wanna be able to understand what's going on. 14 14 00:00:35,819 --> 00:00:39,069 And the best way to start understanding JavaScript versions 15 15 00:00:39,069 --> 00:00:42,460 is by looking at the history of JavaScript. 16 16 00:00:42,460 --> 00:00:44,540 So let's do that. 17 17 00:00:44,540 --> 00:00:47,733 And let's start at the beginning of the internet itself. 18 18 00:00:47,733 --> 00:00:50,613 So quickly after the internet was invented, 19 19 00:00:50,613 --> 00:00:53,520 and two first web browsers were developed. 20 20 00:00:53,520 --> 00:00:57,810 Developers wanted to start making websites more interactive. 21 21 00:00:57,810 --> 00:00:58,650 In other words, 22 22 00:00:58,650 --> 00:01:01,980 they needed a programming language for the browser. 23 23 00:01:01,980 --> 00:01:04,969 So in 1995, the Netscape Navigator, 24 24 00:01:04,969 --> 00:01:08,370 which by the time was the dominant browser 25 25 00:01:08,370 --> 00:01:10,400 hired a guy named Brendan Eich 26 26 00:01:10,400 --> 00:01:13,500 to create the very first version of JavaScript 27 27 00:01:13,500 --> 00:01:16,322 in just 10 days, it was called "Mocha". 28 28 00:01:16,322 --> 00:01:18,386 So not JavaScript yet, 29 29 00:01:18,386 --> 00:01:21,640 but it already had many of the fundamental features 30 30 00:01:21,640 --> 00:01:23,890 that modern JavaScript has today. 31 31 00:01:23,890 --> 00:01:26,500 So that's very impressive that he basically created 32 32 00:01:26,500 --> 00:01:29,557 this first version in really just 10 days. 33 33 00:01:29,557 --> 00:01:33,900 Then in 1996, Mocha was renamed tool Livescript, 34 34 00:01:33,900 --> 00:01:35,210 which was then again, 35 35 00:01:35,210 --> 00:01:38,517 renamed to JavaScript for one simple reason, 36 36 00:01:38,517 --> 00:01:42,700 to attract developers from the hottest language at the time, 37 37 00:01:42,700 --> 00:01:44,710 which was Java. 38 38 00:01:44,710 --> 00:01:46,536 So the Java in JavaScript 39 39 00:01:46,536 --> 00:01:49,430 was really just for marketing reasons 40 40 00:01:49,430 --> 00:01:51,140 because the language itself 41 41 00:01:51,140 --> 00:01:54,108 has basically nothing to do with Java. 42 42 00:01:54,108 --> 00:01:57,350 Now, some beginners think that is the case, 43 43 00:01:57,350 --> 00:02:00,159 but actually no, JavaScript and Java 44 44 00:02:00,159 --> 00:02:03,422 are two completely different languages. 45 45 00:02:03,422 --> 00:02:07,990 Also in 1996, Microsoft launched the internet Explorer, 46 46 00:02:07,990 --> 00:02:11,780 which basically copied JavaScript from Netscape, 47 47 00:02:11,780 --> 00:02:15,950 but they call the JScript for legal reasons because, well, 48 48 00:02:15,950 --> 00:02:17,850 you actually cannot just go around 49 49 00:02:17,850 --> 00:02:20,860 and copy other people's programming languages. 50 50 00:02:20,860 --> 00:02:24,521 Now, what this means, is that we now had two very similar 51 51 00:02:24,521 --> 00:02:26,760 but competing languages, 52 52 00:02:26,760 --> 00:02:30,238 which of course is never a good idea in the long run. 53 53 00:02:30,238 --> 00:02:33,250 And so with the internet growing like crazy 54 54 00:02:33,250 --> 00:02:34,207 around this time, 55 55 00:02:34,207 --> 00:02:38,230 people realized they needed to standardize JavaScript. 56 56 00:02:38,230 --> 00:02:39,750 So the language was submitted 57 57 00:02:39,750 --> 00:02:43,310 to an independent standard organization called ECMA, 58 58 00:02:43,310 --> 00:02:48,310 which in 1997 released ECMAScript one or ES1. 59 59 00:02:48,368 --> 00:02:50,960 This was the very first official standards 60 60 00:02:50,960 --> 00:02:52,630 for the JavaScript language. 61 61 00:02:52,630 --> 00:02:55,330 And with this, every browser could now implement 62 62 00:02:55,330 --> 00:02:56,870 the same standard "JavaScript." 63 63 00:02:56,870 --> 00:03:00,322 And the real world we usually use the term ECMAScript 64 64 00:03:00,322 --> 00:03:03,882 to refer to the standard, while JavaScript is used 65 65 00:03:03,882 --> 00:03:06,820 when we talk about the language in practice, 66 66 00:03:06,820 --> 00:03:09,520 as it's implemented in browsers. 67 67 00:03:09,520 --> 00:03:11,964 Now fast forward to 2009, 68 68 00:03:11,964 --> 00:03:15,151 after a lot of complications and disagreements 69 69 00:03:15,151 --> 00:03:17,671 about where the language should be headed, 70 70 00:03:17,671 --> 00:03:21,774 ES5 was released with a lot of great new features. 71 71 00:03:21,774 --> 00:03:24,838 And then finally, another six years later, 72 72 00:03:24,838 --> 00:03:29,838 the much awaited new version ES6 was launched in June, 2015. 73 73 00:03:30,225 --> 00:03:34,487 And this was the single biggest update to the language ever. 74 74 00:03:34,487 --> 00:03:37,667 So it contained a ton of new exciting features, 75 75 00:03:37,667 --> 00:03:41,185 which we will explore throughout this entire course. 76 76 00:03:41,185 --> 00:03:44,460 This was, and still is a really big deal 77 77 00:03:44,460 --> 00:03:48,429 for JavaScript and for the whole web developer community. 78 78 00:03:48,429 --> 00:03:53,130 Now you will also see ES6 being called ES2015, 79 79 00:03:53,130 --> 00:03:55,270 which has actually the official name, 80 80 00:03:55,270 --> 00:03:57,770 but most people just call it ES6. 81 81 00:03:57,770 --> 00:04:00,770 And so that's what I'm gonna do here as well. 82 82 00:04:00,770 --> 00:04:02,620 And actually the reason for ES6 83 83 00:04:02,620 --> 00:04:06,797 being called ES2015 officially is that in 2015, 84 84 00:04:06,797 --> 00:04:10,780 ECMAScript changed to an annual release cycle. 85 85 00:04:10,780 --> 00:04:13,760 So right now there's gonna be a new release 86 86 00:04:13,760 --> 00:04:15,410 every single year. 87 87 00:04:15,410 --> 00:04:18,010 The reason for that is that they prefer to just 88 88 00:04:18,010 --> 00:04:20,835 add a small number of new features per year, 89 89 00:04:20,835 --> 00:04:23,440 instead of shipping a huge new version 90 90 00:04:23,440 --> 00:04:26,990 every couple of years, like it happened with ES6. 91 91 00:04:26,990 --> 00:04:29,710 And so this way, it's gonna be much easier 92 92 00:04:29,710 --> 00:04:31,699 for everyone to keep up to date. 93 93 00:04:31,699 --> 00:04:35,470 And so according to this new annual release cycle, 94 94 00:04:35,470 --> 00:04:40,470 in 2016 ES2016or ES7 was released ES2017 and 2017. 95 95 00:04:42,950 --> 00:04:46,452 And like this, it will continue until the end of time 96 96 00:04:46,452 --> 00:04:48,163 or something like that. 97 97 00:04:49,101 --> 00:04:52,860 Now there is one particularity about JavaScript releases, 98 98 00:04:52,860 --> 00:04:56,120 which is pretty unique for any programming language 99 99 00:04:56,120 --> 00:04:59,564 and that's backwards compatibility all the way to ES1. 100 100 00:04:59,564 --> 00:05:01,556 So what does that actually mean? 101 101 00:05:01,556 --> 00:05:05,120 Well, basically it means that if you were to take 102 102 00:05:05,120 --> 00:05:08,431 some JavaScript code written back in 1997 103 103 00:05:08,431 --> 00:05:10,950 and put it in a modern browser 104 104 00:05:10,950 --> 00:05:13,350 with a modern JavaScript engine today, 105 105 00:05:13,350 --> 00:05:16,110 it would still work just the same. 106 106 00:05:16,110 --> 00:05:19,581 So again, the JavaScript engine that's in our browser today 107 107 00:05:19,581 --> 00:05:23,596 is able to understand old code written 25 years ago, 108 108 00:05:23,596 --> 00:05:26,340 without having to rely on version numbers 109 109 00:05:26,340 --> 00:05:29,230 or anything like that. It just works. 110 110 00:05:29,230 --> 00:05:32,750 And it works this way because of the fundamental principle 111 111 00:05:32,750 --> 00:05:35,230 that's baked into the JavaScript language 112 112 00:05:35,230 --> 00:05:38,243 and its development, which is to not break the web. 113 113 00:05:38,243 --> 00:05:42,010 This means that there is almost never anything removed 114 114 00:05:42,010 --> 00:05:45,640 from the language, but only added in new versions. 115 115 00:05:45,640 --> 00:05:49,210 And actually we cannot really call them new versions even, 116 116 00:05:49,210 --> 00:05:51,960 because they do not contain breaking changes 117 117 00:05:51,960 --> 00:05:54,820 like when other languages moved to a new version. 118 118 00:05:54,820 --> 00:05:58,294 Instead new versions are always just incremental updates, 119 119 00:05:58,294 --> 00:06:00,200 which add new stuff. 120 120 00:06:00,200 --> 00:06:03,633 And so I like to call them releases and not versions. 121 121 00:06:03,633 --> 00:06:07,157 The ECMAScript committee who works on updating the language, 122 122 00:06:07,157 --> 00:06:08,600 does all this. 123 123 00:06:08,600 --> 00:06:12,051 So that old websites basically keep working forever. 124 124 00:06:12,051 --> 00:06:15,020 Just imagine they removed some important feature 125 125 00:06:15,020 --> 00:06:18,950 that made a website from 2008, work just fine. 126 126 00:06:18,950 --> 00:06:22,091 If you then want it to visit that page, it will be broken. 127 127 00:06:22,091 --> 00:06:24,406 And that's why we fortunately 128 128 00:06:24,406 --> 00:06:27,370 have to don't break the web principle. 129 129 00:06:27,370 --> 00:06:28,203 Now, of course, 130 130 00:06:28,203 --> 00:06:32,190 this comes with problems because there are tons of old bugs 131 131 00:06:32,190 --> 00:06:34,671 and weird things and the language. 132 132 00:06:34,671 --> 00:06:38,361 Remember that Brendan Eich made the very first version 133 133 00:06:38,361 --> 00:06:42,946 in just 10 days and no one back then could even imagine 134 134 00:06:42,946 --> 00:06:46,620 what JavaScript would be used for one day. 135 135 00:06:46,620 --> 00:06:49,270 The initial goal of JavaScript was just to add 136 136 00:06:49,270 --> 00:06:51,077 some simple dynamics to pages, 137 137 00:06:51,077 --> 00:06:53,420 not to write whole web applications 138 138 00:06:53,420 --> 00:06:55,970 in a browser like we do today. 139 139 00:06:55,970 --> 00:06:59,336 But anyway, these bugs and weird quirks in the language 140 140 00:06:59,336 --> 00:07:02,330 have been giving the language a bad reputation 141 141 00:07:02,330 --> 00:07:05,680 among many programmers who can really take JavaScript 142 142 00:07:05,680 --> 00:07:07,414 serious because of this. 143 143 00:07:07,414 --> 00:07:10,267 But here's the thing, we can actually go around 144 144 00:07:10,267 --> 00:07:13,160 many of this weird stuff by simply learning 145 145 00:07:13,160 --> 00:07:15,641 the modern JavaScript that matters today 146 146 00:07:15,641 --> 00:07:18,746 and just ignore most of the old weird stuff. 147 147 00:07:18,746 --> 00:07:23,370 And so that's exactly what we're gonna do in this course. 148 148 00:07:23,370 --> 00:07:26,685 So next time your friends start hating on JavaScript 149 149 00:07:26,685 --> 00:07:29,209 and believe me, this actually happens. 150 150 00:07:29,209 --> 00:07:32,560 Then just tell them about the amazing things 151 151 00:07:32,560 --> 00:07:35,140 that you can build with it. Okay. 152 152 00:07:35,140 --> 00:07:37,220 But now, there is one more thing 153 153 00:07:37,220 --> 00:07:39,000 that we need to talk about here, 154 154 00:07:39,000 --> 00:07:41,056 and that is forwards compatibility. 155 155 00:07:41,056 --> 00:07:43,550 So what do you think would happen 156 156 00:07:43,550 --> 00:07:46,135 if we took this totally made up code 157 157 00:07:46,135 --> 00:07:51,061 from the year 2089 and try to run it in today's browsers? 158 158 00:07:51,061 --> 00:07:53,291 Well, you're probably right. 159 159 00:07:53,291 --> 00:07:55,401 It would not work at all. 160 160 00:07:55,401 --> 00:07:57,811 There would be errors left and right. 161 161 00:07:57,811 --> 00:08:00,090 And nothing would work. 162 162 00:08:00,090 --> 00:08:01,790 That's why we say that JavaScript 163 163 00:08:01,790 --> 00:08:03,960 is not forwards compatible, 164 164 00:08:03,960 --> 00:08:05,707 basically because current browsers 165 165 00:08:05,707 --> 00:08:08,434 do not understand code from the future. 166 166 00:08:08,434 --> 00:08:11,990 And this actually brings us to our next topic, 167 167 00:08:11,990 --> 00:08:15,660 which is how can we use modern JavaScript today? 168 168 00:08:15,660 --> 00:08:19,340 Because browsers that users are using might be old 169 169 00:08:19,340 --> 00:08:22,308 and there's no forwards compatibility. Right? 170 170 00:08:22,308 --> 00:08:24,160 So to answer the question, 171 171 00:08:24,160 --> 00:08:26,740 how we can use modern JavaScript today, 172 172 00:08:26,740 --> 00:08:29,137 we need to consider two distinct scenarios, 173 173 00:08:29,137 --> 00:08:31,448 development and production. 174 174 00:08:31,448 --> 00:08:34,930 So the development phase is simply when you're building 175 175 00:08:34,930 --> 00:08:37,386 the site or application on your computer. 176 176 00:08:37,386 --> 00:08:40,520 To ensure you can use the latest JavaScript features 177 177 00:08:40,520 --> 00:08:42,296 in this face. All you have to do 178 178 00:08:42,296 --> 00:08:45,010 is to use the most Up ToDate version 179 179 00:08:45,010 --> 00:08:47,090 of the Google Chrome browser. 180 180 00:08:47,090 --> 00:08:48,032 This will then ensure 181 181 00:08:48,032 --> 00:08:50,350 that all the features I show you in his course 182 182 00:08:50,350 --> 00:08:52,410 will work for you as well. 183 183 00:08:52,410 --> 00:08:55,110 The second scenario is production, 184 184 00:08:55,110 --> 00:08:57,467 which is when your web application is finished. 185 185 00:08:57,467 --> 00:08:59,244 You deploy it on the internet 186 186 00:08:59,244 --> 00:09:02,643 and it's then running in your users' browsers. 187 187 00:09:02,643 --> 00:09:05,540 And this is where problems might appear, 188 188 00:09:05,540 --> 00:09:08,648 because this is the part that we actually can't control. 189 189 00:09:08,648 --> 00:09:12,200 We cannot control which browser the user uses. 190 190 00:09:12,200 --> 00:09:14,880 And we also can't assume that all our users 191 191 00:09:14,880 --> 00:09:18,080 always use the latest browsers, right. 192 192 00:09:18,080 --> 00:09:19,800 Now, the solution to this problem 193 193 00:09:19,800 --> 00:09:23,001 is to basically convert these modern JavaScript versions 194 194 00:09:23,001 --> 00:09:26,858 back to ES5 using a process called transpiling 195 195 00:09:26,858 --> 00:09:29,130 and also polyfilling. 196 196 00:09:29,130 --> 00:09:32,500 We will use a tool called Babel later in the course 197 197 00:09:32,500 --> 00:09:33,890 to transpile or code. 198 198 00:09:33,890 --> 00:09:37,500 But for now, during the course, we won't need that. 199 199 00:09:37,500 --> 00:09:41,020 Again, because you're using the most Up ToDate browser 200 200 00:09:41,020 --> 00:09:44,270 during development, transpiling back to ES5 201 201 00:09:44,270 --> 00:09:47,940 is only necessary after your app is developed 202 202 00:09:47,940 --> 00:09:50,345 and you want to ship it to your users. 203 203 00:09:50,345 --> 00:09:53,111 All right. So now let's take a look 204 204 00:09:53,111 --> 00:09:57,369 at how different JavaScript releases can be used today. 205 205 00:09:57,369 --> 00:10:01,423 So first off ES5 is of course fully supported 206 206 00:10:01,423 --> 00:10:04,120 in all browsers today, all the way down 207 207 00:10:04,120 --> 00:10:06,934 to internet Explorer nine from 2011. 208 208 00:10:06,934 --> 00:10:11,199 So we can assume that ES5 is safe to be used at this point, 209 209 00:10:11,199 --> 00:10:12,870 which is the reason why 210 210 00:10:12,870 --> 00:10:15,324 we use it as a target for transpiling. 211 211 00:10:15,324 --> 00:10:17,189 Now about the newer releases, 212 212 00:10:17,189 --> 00:10:22,189 ES6, ES7 and all the way to ES2020, as of mid-2020, 213 213 00:10:23,816 --> 00:10:26,690 they are actually quite well supported already 214 214 00:10:26,690 --> 00:10:28,063 in all modern browsers. 215 215 00:10:28,063 --> 00:10:30,955 And we usually call all the current versions together, 216 216 00:10:30,955 --> 00:10:35,955 ES6 plus. So right now that's from ES6 to ES2020, 217 217 00:10:36,510 --> 00:10:40,271 and basically all together, they are the modern JavaScript. 218 218 00:10:40,271 --> 00:10:42,423 Now it's in this modern JavaScript. 219 219 00:10:42,423 --> 00:10:46,517 So in this ES6 plus where transpiling comes in, 220 220 00:10:46,517 --> 00:10:48,570 as I mentioned earlier. 221 221 00:10:48,570 --> 00:10:50,980 Again, because it's not safe to assume 222 222 00:10:50,980 --> 00:10:54,039 that all our users are using these modern browsers 223 223 00:10:54,039 --> 00:10:57,650 and we don't want to break or app for them, right? 224 224 00:10:57,650 --> 00:10:59,470 And by the way, 225 225 00:10:59,470 --> 00:11:02,130 if you want to stay up to date with what features 226 226 00:11:02,130 --> 00:11:04,310 are currently supported in which browser 227 227 00:11:04,310 --> 00:11:07,740 you can check out the ES6 compatibility table. 228 228 00:11:07,740 --> 00:11:08,835 It's really interesting. 229 229 00:11:08,835 --> 00:11:13,835 The link is actually on my resources page on jonas.io. 230 230 00:11:14,464 --> 00:11:17,412 Next, there are also the future releases 231 231 00:11:17,412 --> 00:11:22,412 of the language like ES2021, ES2022 and so on. 232 232 00:11:24,000 --> 00:11:25,880 And these future releases together 233 233 00:11:25,880 --> 00:11:28,639 are many times called ESNext. 234 234 00:11:28,639 --> 00:11:30,541 Now, why is this even relevant? 235 235 00:11:30,541 --> 00:11:34,570 Well, because most browsers actually start implementing 236 236 00:11:34,570 --> 00:11:37,170 new features even before they enter 237 237 00:11:37,170 --> 00:11:39,840 the official ECMAScript specification. 238 238 00:11:39,840 --> 00:11:42,729 That's possible because as new features are proposed, 239 239 00:11:42,729 --> 00:11:45,570 they have to go through four stages, 240 240 00:11:45,570 --> 00:11:47,660 starting with stage one, 241 241 00:11:47,660 --> 00:11:51,230 where they are first admitted all the way to stage four, 242 242 00:11:51,230 --> 00:11:54,220 at which point they enter the language officially. 243 243 00:11:54,220 --> 00:11:56,305 But when a feature is at stage three, 244 244 00:11:56,305 --> 00:11:58,160 browsers can be pretty sure 245 245 00:11:58,160 --> 00:12:00,720 it will eventually pass to stage four. 246 246 00:12:00,720 --> 00:12:03,150 And so they're gonna start implementing that feature 247 247 00:12:03,150 --> 00:12:04,873 while still in stage three. 248 248 00:12:04,873 --> 00:12:07,604 And there is a lot more to be said about this. 249 249 00:12:07,604 --> 00:12:10,288 And actually I find this really fascinating, 250 250 00:12:10,288 --> 00:12:12,283 but I'm gonna stop here. 251 251 00:12:12,283 --> 00:12:14,896 You can find tons of information about us online. 252 252 00:12:14,896 --> 00:12:16,580 If you want to learn more. 253 253 00:12:16,580 --> 00:12:19,487 And a great place to start is actually once more, 254 254 00:12:19,487 --> 00:12:23,386 this compatibility table, that's up here on the slide. 255 255 00:12:23,386 --> 00:12:27,158 But anyway, as these new features start coming out, 256 256 00:12:27,158 --> 00:12:30,805 I will simply add new videos about them to the course 257 257 00:12:30,805 --> 00:12:34,784 in order to keep it updated with the annual release cycle. 258 258 00:12:34,784 --> 00:12:36,525 This is now way easier to do, 259 259 00:12:36,525 --> 00:12:39,300 because there will be no drastic changes 260 260 00:12:39,300 --> 00:12:42,300 to the language like ES6 was. 261 261 00:12:42,300 --> 00:12:44,070 Okay. And now to finish, 262 262 00:12:44,070 --> 00:12:47,959 let's quickly talk about how versions or releases 263 263 00:12:47,959 --> 00:12:50,116 are taught in this course. 264 264 00:12:50,116 --> 00:12:51,688 So, as I said earlier, 265 265 00:12:51,688 --> 00:12:53,900 I will teach you a modern JavaScript, 266 266 00:12:53,900 --> 00:12:56,066 right from the beginning of the course. 267 267 00:12:56,066 --> 00:12:59,740 Now I used to teach this course starting with ES5 268 268 00:12:59,740 --> 00:13:02,770 and then moving to ES6 in the middle of the course. 269 269 00:13:02,770 --> 00:13:04,510 But now after a couple of years, 270 270 00:13:04,510 --> 00:13:07,618 it was time to fully move to modern JavaScript. 271 271 00:13:07,618 --> 00:13:09,975 However, it's also super important 272 272 00:13:09,975 --> 00:13:12,660 to learn how some things used to be done 273 273 00:13:12,660 --> 00:13:16,175 before we had this fancy modern JavaScript. 274 274 00:13:16,175 --> 00:13:18,280 For example, in this section, 275 275 00:13:18,280 --> 00:13:21,380 I already showed you the modern const and let 276 276 00:13:21,380 --> 00:13:23,150 for variable declarations, 277 277 00:13:23,150 --> 00:13:25,588 but also how we used to use Vue before. 278 278 00:13:25,588 --> 00:13:28,369 And there will be many more examples like this, 279 279 00:13:28,369 --> 00:13:32,478 but why butter with ES5 at all? You might ask? 280 280 00:13:32,478 --> 00:13:34,950 Well, here is why, 281 281 00:13:34,950 --> 00:13:37,820 first, you will better understand how some features 282 282 00:13:37,820 --> 00:13:40,910 in JavaScript actually work behind the scenes. 283 283 00:13:40,910 --> 00:13:42,671 For example, ES6 classes, 284 284 00:13:42,671 --> 00:13:44,897 which had all the implementation details 285 285 00:13:44,897 --> 00:13:48,380 of object oriented programming in JavaScript. 286 286 00:13:48,380 --> 00:13:51,040 Also many tutorials and example code 287 287 00:13:51,040 --> 00:13:54,669 that you will find online are still written in ES5 today. 288 288 00:13:54,669 --> 00:13:57,474 Plus, as a developer, in many jobs, 289 289 00:13:57,474 --> 00:14:01,020 you will actually have to work on older code bases. 290 290 00:14:01,020 --> 00:14:03,900 And it's totally possible that that code base 291 291 00:14:03,900 --> 00:14:06,849 might still contain a lot of ES5 code. 292 292 00:14:06,849 --> 00:14:09,340 Okay. So hope that made sense. 293 293 00:14:09,340 --> 00:14:13,258 And that's it for this lecture and for the section. 294 294 00:14:13,258 --> 00:14:15,963 So see you in the next one. 26263

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