javaScript作用域和作用域链
2016-10-19 本文已影响0人
帅气的刘小二
作用域:变量和函数可以访问的范围,以函数来划分,一个函数一个作用域块。
1、作用域范围:
1)、 全局作用域--在任何地方都可以访问。
—变量或者函数在函数外面声明,那它们就是全局变量和全局函数
—定义方法:函数外部定义的、定义时不带var直接给变量赋值、window对像上定义的。
— 作用范围:整个文档。
之所以全局变量在任何地方都可以访问到,是因为全局变量是window下的属性,window是一个全局对象,它本身在页面中任何位置都可以用,所以说全局变量可以在任何地方用。尽量少使用,因为它一直存在内存中,直到页面关闭时才被释放。
2)、局部作用域--只有函数内部可以访问。
-变量或者函数是在函数内部声明的,它们的作用仅存在于声明的这个函数里。
-函数(函数声明,不是函数调用)可以嵌套的,嵌套的函数(局部函数)可以访问父函数里的内容
—定义方法:使用var 在函数内部定义的。
2、作用域链:变量与函数的查找规则。
查找规则:如果一个函数需要用到一个变量,那它会先在自己的作用域里去找这个变量。如果自己有那它就直接使用自己的,如果自己没有,那它就会一层一层往外找,直到找到外面的变量,找到后就用外面的变量。