'Difference between this.variable and this._variable in JavaScript?

I'm learning the Codecademy Advanced JavaScript course, I'm learning about classes.

In their code, I feel this.variable and this._variable have no different but they require to write this.variable even though 2 options return the same output.

Can you please explain the differences if you understand this?

These are some examples of code

class Dog {
  constructor(name) {
    this._name = name
  }
}

Is it different from:

class Dog {
  constructor(name) {
    this.name = name
  }
}


Solution 1:[1]

**

1.Names can contain letters, digits, underscores, and dollar signs. 2.Names must begin with a letter Names can also begin with $ and _ 3.Names are case sensitive(y and Y are different variables)

**

Solution 2:[2]

Define variables preceded by an underscore is just a convention to mark them as private, but javascript doesn't support encapsulation so this is only for helping the developer identify private variables.

In this post you have a similar question: Is the underscore prefix for property and method names merely a convention?

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Mohd Shoaib Khan
Solution 2 adrisons