3.3.1 Var Keyword

Variables defined by var become local variables of the function, ellipses become global variables, and global declarations are mounted to Windows.

Variables declared by this keyword are automatically promoted to the top of the function scope.

The scope of the let declaration is the block scope, while the scope of the var declaration is the function scope, will not promote, will not mount.

The difference between const and LET is that variables declared with let must be initialized at the same time. Attempting to modify a variable declared by const results in a runtime error.

3.4 data type simple data types: Undefined, null, Boolean, Number, String and Symbol complex data types: Object

3.4.7 Symbol Type symbols are primitive values, and Symbol instances are uniquely immutable. The purpose is to ensure that object attributes use unique identifiers without risk of attribute collisions.

Each Object instance has the following properties and methods: constructor: A function used to create the current Object. HasOwnProperty: Determines whether a given property exists on the current object instance. The property name to be checked must be a string or symbol. IsPrototypeOf: Used to determine whether the current object is the prototype of another object. PropertyIsEnumerable: Used to determine if a given property can be used. ToLocaleString (): returns the string representation of the object. ValueOf (): returns the corresponding string representation of the object.