js在函数中传进全局变量,修改全局变量问题。

<script>vara="aaa";functionadd(e){e="bbb";returne;}add(a);alert(a);</script>为什么a的值还是"... <script>
var a="aaa";
function add(e){
e="bbb";

return e;

}

add(a);
alert(a);
</script>
为什么a的值还是"aaa"?
展开
 我来答
百度网友6090ddcc9
2017-12-02 · TA获得超过114个赞
知道小有建树答主
回答量:164
采纳率:100%
帮助的人:117万
展开全部
问题 :
<script>
var a="aaa"; // -> 声明 全局变量 a
function add(e){ // -> 声明 函数 add() ,声明传参 局部变量 e
e="bbb"; // -> 重新赋值给 局部变量 e
return e; // -> 将形参 局部变量 e 的值返回
}
add(a); // -> 调用 函数 add() , 将 全局变量 a 传入
alert(a); // -> 弹框输出 全局变量 a(此时 全局变量 a 的值仍然是 'aaa' )
</script>
回答 :
因为 函数 add() 仅仅被声明调用而函数返回值没有被任何变量或对象接收...
所以 函数 add () 的返回值被自动回收...
你可以将 add () 返回值赋值给予 全局变量 a
语法 :

a = add(a); // -> 调用 函数 add() , 将 全局变量 a 传入,将 函数 add() 的返回值 'bbb' 赋值给予 全局变量 a
window.alert(a); // -> 弹框输出 全局变量 a(此时 全局变量 a 的值是 'bbb' )
匿名用户
推荐于2017-09-05
展开全部
var a="aaa";

function add(e){
// 你只是对形参e的修改,并不是对全局变量a的直接修改,故无效

a = "bbb";
}
add(a);
alert(a);
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式