read teacher Ruan Yifeng"s blog that ES6 in order to change this, on the one hand, in order to maintain compatibility, the global variables declared by the var command and the function command are still the attributes of the top-level object; on the other hand, the global variables declared by the let command, the const command and the class command do not belong to the properties of the top-level object. That is, starting with ES6, global variables are gradually decoupled from the properties of the top-level object.
then comes the question of attributes that do not belong to the top-level object. Who does that belong to?