在函数内部通过var关键字声明的变量将是函数级别的变量,其作用域仅仅限于函数内部。如: 复制代码 代码如下: <script type="text/javascript" language="javascript"> function foo() { var v=1; alert(v); }
alert(v); </script>
运行结果:1 变量“v”未定义
通过上面的分析,可以发现关键字var主要作用 是定义函数级别的变量。
细心的朋友可以会问,如果在函数内部和外部定义了相同的变量,会是什么样的结果呢?如: 复制代码 代码如下: <script type="text/javascript" language="javascript"> var v=1; function foo() { alert(v); var v=2; }
foo(); </script>
运行结果:undefined !!!!!也许有人会比较郁闷了,v明明白白的定义在函数foo()体外,为什么会是 undefined呢?这就涉及到javascript的解析了。根据经验,javascript对于函数体内变量的解析过程是: 搜索所有的 var关键字,将其变量声明放到函数体的最前面,赋值和使用仍然保持不变,这样,上面的javascript实际上是等同于: 复制代码 代码如下: <script type="text/javascript" language="javascript"> var v=1; function foo() { var v; alert(v); v=2; }