Anytime that you have a value that could be saved in a variable or passed to a function, they can be defined as one of the 7 types in JavaScript. The different types are:

  1. String (usually for text).
    `Mary` is a string surrounded by backticks
    'John' is a string surrounded by single quotes
    "Parwinder" is a string surrounded by double quotes
    

    All three examples provided above are valid strings. The advantage of using backticks is that it allows you to do multi-line strings. For example,

    `This is an
    example of
    a multi
    line string`
    

    Another cool thing about backticks is that it allows you to evaluate expressions in them. This allows you to concatenate dynamic values to strings without using the concatenate operator (+);

    const name = "Parwinder";
    console.log(`Hello my name is ${name}`); // Hello my name is Parwinder
    
  2. Number (for numbers with or without decimals). E.g. 72, or 2.34 are of number type.

    Numbers are not quoted (either by single or double quotes or backticks). JavaScript provides many helper methods to work with number. They are part of Math

    Math.round(20.5) => 21
    Math.round(20.1) => 20
    Math.floor(20.7) => 20
    Math.ceil(20.1) => 21
    Math.random => 0.454646447863 // A random number between 0 and 1
    

    One of the common questions that many interviewers seem to ask about number addition in JavaScript is

    console.log(0.1 + 0.2) // 0.30000000000000004
    

    Yep. It is 0.30000000000000004 instead of simply being 0.3. This is because your browser is doing floating point math. To read up more about it go to this link

    Also, NaN is a special type of number that stands for not a number. This happens when you do an operation like dividing a number by string.

  3. Boolean is used to represent true or false

    The presence of something is true, and the absence is false. It is usually calculated if we are making some comparison. For example, isAge > 19 yields true or false, depending on age.

    While we are talking about comparison and boolean. Here is a quick intro to == and ===

    console.log(10 == "10"); // true
    console.log(10 === "10") // false
    

    == only checks for quality of value where as === checks for equality of value and data type

  4. Null

    There are two ways of expressing “nothing” in JS, null and undefined. Null is when we have a property, and we have assigned it a value of null—explicitly stating the value of the property to be nothing.

    let dog = null;
    console.log(dog); // null
    

    Fun fact: null has a type of object in JavaScript.

  5. Undefined

    In the same spirit of expressing nothing in JS, for JavaScript, when you declare a property but do not assign it any value, it results in undefined.

    let dog;
    console.log(dog); // undefined
    
  6. Symbol is a new addition to JS and it is used to obtain a unique identifier. The Symbol() function returns a value of type symbol. Every symbol value returned from Symbol() is unique. A symbol value is generally used as an identifier for object properties

  7. Object: Objects in JS are special. Everything in JS is an object. It is used to express a collection of data.
    const person = {
        first: "Parwinder",
        last: "Bhagat",
        age: 33
    }
    
    console.log(person.first); // Parwinder
    console.log(person.first); // Bhagat
    console.log(person.first); // 33
    console.log(person.income); // undefined