Javascript隐式全局变量和暗式全局变量
隐式的全局变量就是指不通过var声明的变量,就算在函数中,不使用var声明的变量也是全局变量,而不是函数作用域中的变量。至于暗示的全局变量,(这种说法很少听过) 想来想去,应该是将变量作为window对象的属性,如:window.variable = value,这种声明的方式的作用跟隐式的全局变量是一样的, 同样在函数中使用的话也是全局变量。至于不同之处,delete 可以删除由这两种方式创建的
隐式的全局变量就是指不通过var声明的变量,就算在函数中,不使用var声明的变量也是全局变量,而不是函数作用域中的变量。至于暗示的全局变量,(这种说法很少听过) 想来想去,应该是将变量作为window对象的属性,如:window.variable = value,这种声明的方式的作用跟隐式的全局变量是一样的, 同样在函数中使用的话也是全局变量。至于不同之处,delete 可以删除由这两种方式创建的
变量前不加var 如 b这个变量,就是暗示全局变量,存储在window这个全局作用域对象里var a = 1; b = 2; console.log(window.a) a === window.a // truetest函数调用后,会将b变量提升为全局变量function test() { var a = b = 1; } test(); console.log(b);两种不同的访问方式,