 So, as a next part, after we have introduced what client and server side means, what the DOM is, we finally get into JavaScript, and this is just the introduction part of it, and then we dive into the actual syntax. So JavaScript is definitely one of the key technologies you need to learn as a web developer. And Flanagan, who wrote one of the, I would say, big JavaScript books, says that this is part of the triad, part of the three technologies that all web developers must learn, HTML, CSS, and JavaScript. And in this course, it's basically the last one we are learning. So we have learned how to display content, we have learned how to style it, and now we learn how to interact with it, how to modify it. And JavaScript is a weekly type, interpreted language. So, roughly speaking, we get into this later, but it has some kind of types, but it's not very explicit. And it's interpreted, so it's not compiled anyhow, but the browser interprets it at runtime. It supports different styles, how to develop object-oriented, functional, and especially event-driven. And traditionally, as I said, JavaScript is a client-side language, there is no input output, you can't really save files or delete things from the file system or things like that. In this part of the course, where we look at the front and where we look at stuff that runs in the browser, we specifically focus on two things. We focus on JavaScript as a client-side language, and we focus in particular on the event-driven style. So you kind of put into events into JavaScript and things happen. We get to this later what exactly that means. Now, JavaScript has a long history. It's originally by Netscape, and then it was called JavaScript. It has nothing to do with Java. This was just pure marketing, that Java was a little bit hyped at this time, so let's make a language that we call JavaScript. But it has nothing to do with Java. Now, the confusing thing is the language standard is called ECMA script. So JavaScript is basically an implementation of the standard. And of course, as you would expect having seen HTML and CSS, for JavaScript, there are also different standard versions, different browser support, and this can, in theory, mess up things. To give a little bit of a background here, ECMA script 3, and it should be ES3 here, is fully supported in all browsers, according to W3C. ECMA script 5 is fully supported in all modern browsers. So typically, we say we focus on ES5. ES6, which is confusingly enough called ECMA script 2015, is limited in some browsers. So in this course, we cover mainly ES5. We cover some concepts that are new in ES6 because they have quite some impact, and they're quite important to understand. Plus, when we get to server-side JavaScript, you can use all of these concepts, and you don't have to be afraid that there is a browser that doesn't support them, because as you remember, if it runs on the server, we can decide what kind of version we are running, or we know at least. So these are the different versions. If we look at client-side execution, basically, what happens is that each browser has a JavaScript engine, so some kind of runtime environment that reads JavaScript code interprets it and runs it. And this is a bit simplified. What they actually, in many cases, do is they do some kind of compilation. So I said earlier, JavaScript is an interpreted language. Nowadays, that's not really true anymore. So most of the engines do some kind of compilation basically to improve performance. And this is quite advanced, so we won't cover this in this course, but it's basically trying to figure out how the JavaScript is used and then adapting the way you compile things and basically pre-compile things so they run quicker. There are nowadays different engines on the market, so the big ones are the V8 used by Google Chrome, which is also used in Node.js. Again, this is something we cover in the backend lectures. SpiderMonkey, which is the one that runs in Firefox and Chakra, which is used in Internet Explorer and Edge. There are, of course, a number of more, but these are three of the important ones. They have some kind of differences in speed, language support, different kind of optimizations. So I think all of them have some kind of websites where they show off how much quicker they are than the others, but typically this has to do with optimizations. So for certain purposes, one of them might be better than the other. But magically, I would say, given the different standards and given that we have different implementations, magically they actually work similarly well. So as an end user and also as a programmer for regular use, if you don't go into the advanced features, you would notice very few differences, if any at all. So you can expect that the code runs similarly in all browsers. Now, why do we do JavaScript? Specifically, in this course, we had C sharp before. We decided to use JavaScript only for the front and for the backend for several reasons. So first of all, it's highly popular. If you look at GitHub, this is the statistics from GitHub over the last five years. You see that JavaScript is the number one language in terms of use. So most repositories have JavaScript as a language. And actually TypeScript, which I might get into later in this course, is compiled into JavaScript or transpiled. So it's actually, this is in a way also JavaScript. So you see that it's highly popular. It's more popular than Java, Python, PHP and so on. Definitely more popular than C sharp. Of course, this is GitHub. It could be that in companies it looks slightly different, but still it's an extremely popular language right now. But also one of the main arguments is you will have to learn JavaScript anyway, because sooner or later you're exposed to it and it is on the client side, the language. So it makes sense to learn JavaScript and then it's good that you can actually use it both in the front end and the back end nowadays. So you don't have to switch context. You don't have to change the language when you want to develop something that runs on the server. And this means less context switch, less tools you need, less knowledge. And hopefully less bugs because of that and quicker development time. And of course it's supported by all common browsers. So it's a standard language. But of course, and this is not why we use it, but JavaScript has a bad reputation originally. This is mainly historical. So in the beginning JavaScript did a lot of strange things and the reputation got really bad. The other reason why it has a bad reputation is that it does things that are unintuitive. And I don't know who of you knows the wet talk, which is a rather famous internet sensation about how bad JavaScript is or rather what weird things it does. So if you haven't seen it, you can look at the second part of the video and there are some strange things about time type conversion basically. But part of the role in this course is of course that we explain to you what kind of things are happening in JavaScript and why.