JS中全局变量和window自定义属性的区别

JavaScript012

JS中全局变量和window自定义属性的区别,第1张

在运行的时候,所有在全局作用域定义的变量,函数都会变成window对象中属性和方法,所以通过var定义的属性,可以通过window对象来访问,ex:var name = 'xxx'console.log(window.name)//运行结果:xxx 主要区别有     1. 全局变量不能通过delete删除,window的属性可以直接删除     2. 直接访问未定义的变量时会报错,但是通过window访问就不会报错,只要是通过window访问,相对于属性访问,结果返回undefine *通过var来定义的会有作用域,当在函数内部定义的变量,在函数外就会失效。js在定义变量的时候,默认是var,但一个变量如果没有定义就直接使用,那么默认认为它是个全局变量,这个对于在函数内也适用。

1.window代表的是浏览器的窗口,是js中存在的全局对象,document代表的是文档对象,是HTMLDocument的实例,可以用来访问HTML页面中的所有元素,实现对页面结构的操作。

2.document是window的一个属性。

3.在全局作用域内声明的变量和方法都属于window对象,除了这些,也有很多window对象自身本来就有的属性和方法,比如name、history、self、location等属性,alert()、confirm()、open() 、close()等方法。

4.document是window的属性,但也有属于自己的属性和方法,比如bgColor、title、linkColor 、vlinkColor等属性,write()、createElement(Tag)、getElementById(ID)、getElementsByClassName(ClassName)等方法。