[ js ] 全域變數在區域中new

看板Ajax作者 (兔子)時間15年前 (2010/05/27 17:20), 編輯推噓1(1013)
留言14則, 3人參與, 最新討論串1/2 (看更多)
<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)

05/27 17:24, , 1F
我自己試了一下 光上面這樣跑好像可以
05/27 17:24, 1F

05/27 17:25, , 2F
我大概是哪邊有其他程式碼動到它了?
05/27 17:25, 2F

05/27 17:25, , 3F
但也想不出來要怎麼動才會讓它變成undefined..
05/27 17:25, 3F

05/27 17:26, , 4F
阿我知道了...這真是太笨了
05/27 17:26, 4F
var A[0.5]=100; window.alert(A[0]+" & "+A[0.5]); //會show出 undefined & 100 ※ 編輯: hirabbitt 來自: 163.13.127.91 (05/27 17:28)

05/27 17:28, , 5F
還是應該說太聰明?
05/27 17:28, 5F

05/27 22:28, , 6F
js的陣列沒有規定要照順序,這樣寫應該會有問題
05/27 22:28, 6F

05/27 22:29, , 7F
var a=[]; a[0]=1; a['a']='a'; a[100]=2; //都符合規則
05/27 22:29, 7F

05/28 02:37, , 8F
不過這個時候a.length=101.....要小心啊XD
05/28 02:37, 8F

05/28 08:13, , 9F
所以 如果想要開100空間的陣列 定義0~1之間 用0.01存
05/28 08:13, 9F

05/28 08:13, , 10F
其實也可以嘛XD length會變倒是沒注意到0.0
05/28 08:13, 10F

05/28 11:07, , 11F
定義上.length是最大的數字+1....還有JS沒有整數型態
05/28 11:07, 11F

05/31 21:27, , 12F
陣列index設小數..很少見;可能就遇到很少見的問題
05/31 21:27, 12F

06/01 08:50, , 13F
我看訊息 沒有編譯錯誤 還以為它自動幫我轉整數了咧=.=
06/01 08:50, 13F

06/01 22:12, , 14F
Javascript沒有整數型態,數字全部都是小數= =||
06/01 22:12, 14F
文章代碼(AID): #1B_ZbSet (Ajax)
討論串 (同標題文章)
文章代碼(AID): #1B_ZbSet (Ajax)