作者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