作者hirabbitt (兔子)
看板Ajax
标题[ js ] 全域变数在区域中new
时间Thu May 27 17:20:25 2010
<script language="javascript" type="text/javascript">
var dbtodeck;
//我在最外层宣告了一个变数
//应该是全域的
function drawcard(){
//这个function会比下面那个慢执行
//只是我写在上面
window.alert(dbtodeck[cardid]);
//印出来是undefined
}
function loaded(){
//这是网页读入时第一个跑的function
dbtodeck=new Array(x);
//这个x必须先等网页load完
//才能知道我的阵列要开多大
dbtodeck[0]=0;
dbtodeck[1]=1;
dbtodeck[2]=2;
window.alert(dbtodeck[rand]);
//这边跑出来是有东西的
}
</script>
想请问是不是全域区域的问题
还是有其它我没注意到的东西?
谢谢
--
◤ __ \__◣
◢◤◢◤ ψhirabbitt
◢ ◤ ◢███◣
◢███◣
和你的约定 █████
█████ 不变心的约定
██
●█
● █▇███
是变心的约定 ██
╱╲ ●◥█████◣● 是我和自己的约定
◥
╱█
╱╱ ● ◥████ ˇ
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.13.127.91
※ 编辑: hirabbitt 来自: 163.13.127.91 (05/27 17:21)
1F:→ hirabbitt:我自己试了一下 光上面这样跑好像可以 05/27 17:24
2F:→ hirabbitt:我大概是哪边有其他程式码动到它了? 05/27 17:25
3F:→ hirabbitt:但也想不出来要怎麽动才会让它变成undefined.. 05/27 17:25
4F:→ hirabbitt:阿我知道了...这真是太笨了 05/27 17:26
var A[0.5]=100;
window.alert(A[0]+" & "+A[0.5]);
//会show出 undefined & 100
※ 编辑: hirabbitt 来自: 163.13.127.91 (05/27 17:28)
5F:→ hirabbitt:还是应该说太聪明? 05/27 17:28
6F:→ grence:js的阵列没有规定要照顺序,这样写应该会有问题 05/27 22:28
7F:→ grence:var a=[]; a[0]=1; a['a']='a'; a[100]=2; //都符合规则 05/27 22:29
8F:→ j100002ben:不过这个时候a.length=101.....要小心啊XD 05/28 02:37
9F:→ hirabbitt:所以 如果想要开100空间的阵列 定义0~1之间 用0.01存 05/28 08:13
10F:→ hirabbitt:其实也可以嘛XD length会变倒是没注意到0.0 05/28 08:13
11F:→ j100002ben:定义上.length是最大的数字+1....还有JS没有整数型态 05/28 11:07
12F:→ grence:阵列index设小数..很少见;可能就遇到很少见的问题 05/31 21:27
13F:→ hirabbitt:我看讯息 没有编译错误 还以为它自动帮我转整数了咧=.= 06/01 08:50
14F:推 j100002ben:Javascript没有整数型态,数字全部都是小数= =|| 06/01 22:12