变量作用域
一个变量的作用域是源代码中定义这个变量的区域。全局变量拥有全局作用域。在js中任何地方都是有定义的。然而在函数内声明的变量只在函数体内有定义。他们是局部变量,作用域时局部性的,函数参数也是局部变量,他们只在函数体内有定义
变量作用域有两种:
1、全局作用域:
(1)全局作用域在页面打开时创建,在页面关闭时被销毁。
(2)在script标签中的变量和函数作用域是全局,在页面的任何位置都可以访问。
<script>
var a=20;
b=20;
function math(){
console.log(b);
}
</script>
如上面的代码块,变量a,b,和函数math的作用于都是全局。
**2、局部(函数)作用域 **
(1)函数作用域在函数被调用时创建,在函数调用结束后销毁。
(2)每调用一次函数就会创建一个新的函数作用域,他们之间是相互独立的。
(3)在函数作用域中可以访问到全局作用域的变量,在函数外无法访问到函数作用域内的变量。
js中的函数作用域是指在函数内声明的所有变量在函数体内始终是可见的。这就意味着变量在声明之前已经可用,在js函数中声明的所有变量(但不涉及赋值),都被提前值函数的顶部