在js中 var a = null; function init() { a = "111"; } function test() { alert(a) } 为什么A是空的 求解

如题所述

你在调用test()方法前是否调用了init()这个方法。
function init() { a = "111"; } 这个方法是给a设置值的,如果没有调用,当然就是初始值null了。追问

肯定调用了 INIT是页面初始化方法 写body里面的 test就是随便写了个按钮

追答

你调试一下这个方法function init() { a = "111";alert(a) ;}看页面初始化是否执行了?

追问

执行了 就是不能给全局变量赋值

追答

能把页面代码贴出来吗?

追问



var a =null;
function init()
{
a = "111";
}
function test()
{
alert(a);
}

追答

貌似正确的。
你把去掉试试。
引用页面怎么用的script?

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-04-06
<script language=javascript>
var a = null;
function init()
{
a = "111";
return a; //需要返回
}
function test()
{
alert(init());
}

test();

</script>追问

这个貌似不行 一样是空 我怀疑是ECLIPSE的问题

追答

不会吧,我测试一切正常,返回111

追问

是啊 所以我郁闷

追答

我在IE和firefox中测试通过。

第2个回答  2011-04-06
怎么可能...我怀疑是你得调用顺序错了...你可能执行完var a=null;就执行了test方法,就是说在执行init()方法之前执行的test()方法!明白了吧~我给你改了下你看下

<%@ page language="java" contentType="text/html; charset=gb2312"
pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>Insert title here</title>
</head>
<script>
var a = null;

function aler(){
a = "111";
test();
}
function test(){
alert(a);
}
</script>
<body onload="aler()">

</body>
</html>追问

我肯定是在TEST前调用的init方法

追答

.......你用你得按钮执行的他就从新执行了一次script...所以它又给a赋值成NUll了~!

追问

额 大哥 我定义的是全局变量

追答

。。。。。。。。我知道。。。你运行我的~!!!

相似回答