JavaScript has all the features you'd expect of an imperative programming language: variables, loops, operators, functions, and classes. But it also has more. Before you use the language to make full web applications, you decide to sit down to learn some of these advanced features.