JavaScript 101: Ultimate JavaScript Guide.
Tags: javascript, webdev, beginners, programming
Published: 2022-02-14 06:42:53

**JavaScript Overview **
Let's take a look at what's special about JavaScript, what you can do with JavaScript, and what other technologies work well with JavaScript. 

**What is JavaScript?**
JavaScript was originally created to "bring web pages to life". Programs in this language are called scripts. These can be written directly in the HTML of the web page and will be executed automatically when the page loads. The script is provided and executed as plain text. No special preparation or compilation is required to run it. In this respect, JavaScript is very different from another language called Java.

Today, JavaScript can be executed not only in the browser, but also on the server, or actually on any device with a special program called the JavaScript Engine. The browser has a built-in engine sometimes called a "javascript virtual machine". 
 
 Different engines have different "code names". For example: 

V8 - in Chrome, Opera and Edge.
SpiderMonkey - in Firefox.

... There are other code names like "Chakra" for IE, "JavaScriptCore", "Nitro", "SquirrelFish" for Safari, etc. It's a good idea to remember the terms above because they are used in developer articles on the Internet. We'll use it too. For example, if "Feature X is supported by V8", it probably works in Chrome, Opera, and Edge.

Code editors
A code editor is the place where programmers spend most of their time.
There are two main types of code editors: IDEs and lightweight editors. Many people use one tool of each type.

**IDE**
The term IDE (Integrated Development Environment) refers to a powerful editor with many features that would normally run on a "complete project". As the name implies, it is not just an editor, but a "complete development environment". 
 
 The IDE loads the project (which can be many files), allows navigation between files, provides auto-completion based on the entire project (not just the open file), and integrates With a version management system (such as git), a test environment, and other "project level" elements. If you haven't selected an IDE yet, consider the following options: 

    • Visual Studio Code ( across platforms, for free). 
    • WebStorm (cross-platform, paid).


**Light Weight Editor**

A "lightweight editor" isn't as powerful as an IDE, but it's fast, elegant, and simple. Mainly used to open and edit files instantly. The main difference between "lightweight editor" and "IDE" is that the IDE works at the project level, so it has much more data at the start and analysis. Is to load. Project structure etc. as needed. If you only need one file, the lightweight editor is much faster. In fact, lightweight editors may contain a number of plugins such as directory-level syntax analyzers and autocompleters. There is no strict boundary between the lightweight editor and the IDE. The following options are noteworthy:  Atom (cross-platform, free). Sublime Text (cross-platform, shareware). Notepad ++ (Windows, free). Vim and Emacs are also cool if you know how to use them. 

The modern mode, "use strict"
    • Variables
    • Data types
    • Interaction: alert, prompt, confirm
    • Type Conversions
    • Basic operators, maths
    • Comparisons
    • Conditional branching: if, '?'
    • Logical operators
    • Nullish coalescing operator '??'
    • Loops: while and for
    • The "switch" statement
    • Functions
    • Function expressions
    • Arrow functions, the basics
    • JavaScript specials
    • Objects
    • Object references and copying
    • Garbage collection
    • Object methods, "this"
    • Constructor, operator "new"
    • Optional chaining '?.'
    • Symbol type
    • Object to primitive conversion

Just to mention a few to start with.