Only_L
2016-11-21 22:15
<script type="text/javascript">
function app2(x,y)
{ var sum,x,y;
sum = x * y;
return sum;
}
req1 = app2(5,6);
// var req1 = app2(5,6);
req2 = app2(2,3);
// var req2 = app2(2,3);
sumq = req1+req2;
// var sumq = req1+req2;
document.write("req1的值:"+req1+"<br/>");
document.write("req2的值:"+req2+"<br/>");
document.write(req1+"与"+req2+"和:"+sumq);
</script>
问题:req1、req2、sumq这三个变量,声明和不声明对运行结果都没有影响,这两者有什么区别吗?在使用的过程中有什么前提吗?
req1 = app2(5,6);
// var req1 = app2(5,6);
req2 = app2(2,3);
// var req2 = app2(2,3);
sumq = req1+req2;
// var sumq = req1+req2;
以上这段代码,不管你用var声明还是不声明,这两种写法都是全局变量,没什么区别,因为是在函数外。
function app2(x,y)
{ var sum,x,y;
sum = x * y;
return sum;
}
这段代码里面的三个变量均为局部变量。在函数里面用var声明了的变量就是局部变量。
function app2(x,y)
{
return x * y;
}
如果是这样写的话,当app2()这个函数被调用时,x,y都是全局变量,因为没用var声明。
全局变量就是在代码里哪都能被调用,局部变量只能在某个范围内使用(如某个函数里使用)。
在函数里没用var声明的变量,当函数被调用时就会变成全局变量,在函数里使用var声明了的变量,就是局部变量。在函数外用var声明和没声明的变量都是全局变量。
这三个变量如果不声明,也是可以直接给它赋值的,但是当给这三个没声明的变量赋值的时候,javaScript引擎就会自动把这个变量变成全局变量了,而本身你声明的变量也是全局变量,所以没有影响。
JavaScript进阶篇
468194 学习 · 21891 问题
相似问题