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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js在函数中传进全局变量,修改全局变量问题。相关的知识,希望对你有一定的参考价值。

<script>
var a="aaa";
function add(e)
e="bbb";

return e;



add(a);
alert(a);
</script>
为什么a的值还是"aaa"?

问题 :
<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' )
参考技术A var a="aaa";

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

a = "bbb";

add(a);
alert(a);本回答被提问者和网友采纳

以上是关于js在函数中传进全局变量,修改全局变量问题。的主要内容,如果未能解决你的问题,请参考以下文章

python 中怎么对一个全局的图变量在函数中进行值修改

如何从回调函数中修改全局变量。在 node.js 中

js中三种作用域详解(全局,函数,块级)

JavaScript函数内部修改全局变量的问题一道面试题

如何从挂载的函数中修改全局变量? Vue.js

怎么在js中获取freemarker配置的全局变量