标题:彻底搞晕了
只看楼主
每天都要进步
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-2-19
 问题点数:0 回复次数:4 
彻底搞晕了

<script language="JavaScript" type="text/JavaScript">
function aa()
{ x = 4; }
var x =1;
aa();
alert(x);
</script>
结果为4

function aa()
{ x = 4; }
var x =1;
aa(x);
alert(x);
结果为4


function aa(x)
{
x = 4;
}
var x =1;
aa(x);
alert(x);
结果为1

function aa(x)
{
x = 4;
}
var x =1;
aa();
alert(x);
结果为1

请问 function aa(x) 和 function aa()到底有什么区别啊.就是一个是传值一个没有值吗.
aa(x) 和 aa()的时候结果都为1 这2个应该不同吧.

也许我对函数还没理解透,谁能告诉我这是为什么啊

搜索更多相关主题的帖子: function var alert script 
2007-05-04 11:52
lmhllr
Rank: 8Rank: 8
等 级:贵宾
威 望:44
帖 子:1504
专家分:42
注 册:2005-5-12
得分:0 
不传值的话调用aa()时把x设置为4了

传值过去的话调用aa()时把x设置为 1了

所以就是你出现的结果了

这个只是简单传值和全局变量之类的吧~

2007-05-04 13:53
每天都要进步
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-2-19
得分:0 

var x =1;赋的值就是全局变量啊.为什么传值进去就是1,不传值就是4呢.还是搞不明白.

是不是x=1的内存单元和传值进去后函数中改变的内存单位不是一块啊. 想的晕头转向的...谁能一句话惊醒梦中人啊

如果function aa(x) 是定义了局部变量,那我在函数里加了个retun 返回值,可还是1啊..


<script language="JavaScript" type="text/JavaScript">
function aa(x)
{ x = 4;
return (x);
}
var x =1;
aa(x);
alert(x);
</script>结果为1


[此贴子已经被作者于2007-5-4 14:53:48编辑过]

2007-05-04 14:20
pity1115
Rank: 1
等 级:新手上路
威 望:2
帖 子:184
专家分:0
注 册:2006-9-15
得分:0 
以下是引用每天都要进步在2007-5-4 14:20:26的发言:

var x =1;赋的值就是全局变量啊.为什么传值进去就是1,不传值就是4呢.还是搞不明白.

是不是x=1的内存单元和传值进去后函数中改变的内存单位不是一块啊. 想的晕头转向的...谁能一句话惊醒梦中人啊

如果function aa(x) 是定义了局部变量,那我在函数里加了个retun 返回值,可还是1啊..


<script language="JavaScript" type="text/JavaScript">
function aa(x)
{ x = 4;
return (x);
}
var x =1;
aa(x);
alert(x);
</script>结果为1



你的方法是有返回值,但是你没有接收它的返回值,alert()里面的x还是原来的1,
换成alert(aa(x))结果就是4了。


2007-05-04 18:28
每天都要进步
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2006-2-19
得分:0 
pity1115谢谢
2007-05-04 21:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-136842-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.085386 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved