看板 Ajax 關於我們 聯絡資訊
<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)
hirabbitt:我自己試了一下 光上面這樣跑好像可以 05/27 17:24
hirabbitt:我大概是哪邊有其他程式碼動到它了? 05/27 17:25
hirabbitt:但也想不出來要怎麼動才會讓它變成undefined.. 05/27 17:25
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)
hirabbitt:還是應該說太聰明? 05/27 17:28
grence:js的陣列沒有規定要照順序,這樣寫應該會有問題 05/27 22:28
grence:var a=[]; a[0]=1; a['a']='a'; a[100]=2; //都符合規則 05/27 22:29
j100002ben:不過這個時候a.length=101.....要小心啊XD 05/28 02:37
hirabbitt:所以 如果想要開100空間的陣列 定義0~1之間 用0.01存 05/28 08:13
hirabbitt:其實也可以嘛XD length會變倒是沒注意到0.0 05/28 08:13
j100002ben:定義上.length是最大的數字+1....還有JS沒有整數型態 05/28 11:07
grence:陣列index設小數..很少見;可能就遇到很少見的問題 05/31 21:27
hirabbitt:我看訊息 沒有編譯錯誤 還以為它自動幫我轉整數了咧=.= 06/01 08:50
j100002ben:Javascript沒有整數型態,數字全部都是小數= =|| 06/01 22:12