javascript中局部变量和全局变量的区别详解

JavaScript014

javascript中局部变量和全局变量的区别详解,第1张

局部变量,作用域在局部,一般都是在方法体内,生存周期就是调用方法的过程,在不同方法体内可以重名。

全局变量,作用于全局,一般就是整个文件,有且仅有一个,在一个地方使用并且改变了值,全局变量的值就改变了,

js中一般看变量定义的位置就可以知道它是否是全局变量。

var

bzdzglList

=

(function()

{

//

私有属性

var

a

//

私有方法

var

initLayout

=

function()

{

var

b

}

}

像这样的结构,a是全局变量,b是局部变量

详解

<html>

<head>

<script type="text/javascript">

/*

变量的scope是根据方法块来划分的(也就是说以function的一对大括号{ }来划分)

Javascript在执行前(!!!!!!)会对整个脚本文件的声明部分做完整分析(包括局部变量),从而确定实变量的作用域。

当全局变量跟局部变量重名时,局部变量的scope会覆盖掉全局变量的scope,(当离开局部变量的scope后,又重回到全局变量的scope,)

而当全局变量遇上局部变量时,用window.globalVariableName来使用全局变量

*/

</script>

<script>

var variable = "variable in global"

function show(){

    

    alert(variable)   //undefined 因为此时variable为局部变量但是代码执行到此处时未赋值

    //alert(window.variable)  //  variable in global   全局变量

    var variable = "variable in local" //声明并初始化variable 

    alert(variable)   //  variable in global局部变量

}

</script>

</head>

<body>

<input type="button" onclick="show()"/>

</body>

<script>

</script>

</html>

: