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

JavaScript019

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,但一个变量如果没有定义就直接使用,那么默认认为它是个全局变量,这个对于在函数内也适用。

对象[变量]

比如obj是一个对象,它有个属性是name:

var

x

=

"name"

var

n

=

obj[x]

//获取属性值

obj[x]

=

"XXX"

//设置属性值

补充说明:对象属性的使用有两种方式:

obj.name

obj["name"]

第二种方式的属性名是个字符串,这就为变量的使用制造了可能性。

对象[变量]

比如obj是一个对象,它有个属性是name:

var x = "name"

var n = obj[x] //获取属性值

obj[x] = "XXX" //设置属性值

补充说明:对象属性的使用有两种方式:

obj.name

obj["name"]

第二种方式的属性名是个字符串,这就为变量的使用制造了可能性。