JS--之VO(G)与GO的映射机制

428 阅读1分钟

条件:

  1. 在全局上下文中
  2. 基于var / function 声明的全局变量,

结论:

也会给GO(window)中新增一个私有属性,并且和全局的变量有建立映射机制’,一个修改另一个也会跟着修改。

eg:

var a = 10;  
(1.声明一个全局变量a=10 2.给window新增一个私有属性window.a = 10)  
console.log(a)  
(首先看a是否为全局变量,如果是按照全局变量处理;如果不是全局变量,  
再看是否为window的一个属性,如果也不是window的属性,则会报错:a is not defined)    
console.log(window.a)  (直接访问对象的成员);

基于let / const 声明的全局变量和window就没有任何关系

eg:

let a = 10; //全局变量
console.log(window.a) //undefined

注意

//在全局上下文中(省略var 关键字)
a = 10  //此时不是全局变量,而是给window增加了一个私有属性。  
console.log(a) //此时访问了window.a