| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 716 人关注过本帖
标题:彻底搞晕了
只看楼主 加入收藏
每天都要进步
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
快速回复:彻底搞晕了
数据加载中...
 
   



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

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