在javascript中怎样把局部变量的值赋给全局变量

在javascript中怎样把局部变量的值赋给全局变量,第1张

很简单,你只需要将这个局部变量作为包含此局部变量的函数的返回值,然后再将这个函数赋值给那个全局变量就行了,记住函数后面一定要加括号
<script>
var a; //全局变量
function test()
{
var b=20; //局部变量
return b; //返回局部变量的值
}
a=test(); //将函数返回值赋给全局变量a
alert("全局变量a的值是: "+a);
</script>

<html>
<head>
<script type="text/javascript">
//var str=documentgetElementById("a"); //注意的是var str不可以放在这里,不然str变量为null
function test()
{
var str=documentgetElementById("a");
alert (strinnerHTML);
}
</script>
</head>
<body>
<div id="a">全局变量</div>
<input type="button" value='点我' onclick="test()"/>
</body>
</html>

无法定义这种的js变量

解决思路:

1、由服务器端session对这个变量进行保存,然后再不同页面获取该值

2、保存在cookie中,再不同页面获取,如果保密要求低,推荐这种方式

代码举例:

function setCookie(name,value) 

    var Days = 30; 
    var exp = new Date(); 
    expsetTime(expgetTime() + Days2460601000); 
    documentcookie = name + "="+ escape (value) + ";expires=" + exptoGMTString(); 

//读取cookies 
function getCookie(name) 

    var arr,reg=new RegExp("(^| )"+name+"=([^;])(;|$)");
 
    if(arr=documentcookiematch(reg))
 
        return unescape(arr[2]); 
    else 
        return null; 

使用
ahtml 
function add(){ setCookie('name',documentgetElementById("yonghuming")value);}
bhtml 
function huode(){ alert(getCookie('name')); }

首先JS文件编码再引入页面中可以理解为就是对jquery进行了封装。让页面不至于被各种代码冗余,那样可读性很差,引入JS文件到页面后,其实跟写在页面内部是一个效果,只是这样会更方便管理,增加可读性。那么基于这样的情况,两个 JS文件里,如果先引入页面的JS文件里定义了全局变量,那么第二个引入的JS文件,对于前一个JS所定义的全局变量,是可以进行修改。

(一) 编译好的文件
简单说就是解压后,在bin文件夹中已经存在node以及npm,如果你进入到对应文件的中执行命令行一点问题都没有,不过不是全局的,所以将这个设置为全局就好了。

1
2
3
cd node-v01028-linux-x64/bin
ls
/node -v
这就妥妥的了,node文件夹具体放在哪,叫什么名字随你怎么定。然后设置全局:

1
2
ln -s /home/kun/mysofltware/node-v01028-linux-x64/bin/node /usr/local/bin/node
ln -s /home/kun/mysofltware/node-v01028-linux-x64/bin/npm /usr/local/bin/npm
这里/home/kun/mysofltware/这个路径是你自己放的,你将node文件解压到哪里就是哪里。
(二)通过源码编译

问题 :
<script>
var a="aaa"; // -> 声明 全局变量 a
function add(e){ // -> 声明 函数 add() ,声明传参 局部变量 e
e="bbb"; // -> 重新赋值给 局部变量 e
return e; // -> 将形参 局部变量 e 的值返回
}
add(a); // -> 调用 函数 add() , 将 全局变量 a 传入
alert(a); // -> d框输出 全局变量 a(此时 全局变量 a 的值仍然是 'aaa' )
</script>
回答 :
因为 函数 add() 仅仅被声明调用而函数返回值没有被任何变量或对象接收
所以 函数 add () 的返回值被自动回收
你可以将 add () 返回值赋值给予 全局变量 a
语法 :
a = add(a); // -> 调用 函数 add() , 将 全局变量 a 传入,将 函数 add() 的返回值 'bbb' 赋值给予 全局变量 a
windowalert(a); // -> d框输出 全局变量 a(此时 全局变量 a 的值是 'bbb' )


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12628254.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存