JavaScript变量作用域

来源:互联网 发布:cutecom串口发送数据 编辑:程序博客网 时间:2024/06/14 19:55

全局变量和局部变量

1、函数中定义的是局部变量,在整个函数中都有定义,但是如果不使用var则默认是全局变量

2、同名变量时,局部变量会覆盖全局变量

函数作用域和变量提前

JavaScript函数作用域指在函数内声明的所有变量在函数体内始终是可见的。

变量声明提前:在函数作用域内,变量声明前就可用了,只不过值是undefined。

作为属性的变量

声明一个JavaScript全局变量,实质是为全局对象创建了一个属性。使用声明一个变量时,创建的这个属性是不可配置的,也就是说这个变量无法通过delete运算符删除。未使用var声明而直接赋值的变量也会成为全局变量,但是可以通过delete删除

作用域链

每一段JavaScript代码都有一个与之关联的作用域链。当JavaScript要查找变量x的时候(这个过程叫“变量解析”),它会从链中的第一个对象开始查找,如果这个对象有叫x的属性,则会直接使用这个属性的值;如果第一个对象不存在名为x的属性,则会继续查找下一个对象,以此类推。如果作用域链上所有对象都不存在属性x,则抛出一个引用错误。

0 0
原创粉丝点击