看板 Ajax 關於我們 聯絡資訊
※ 引述《iam87king (沉默傷心)》之銘言: : 最近用了一個檢測js碼的service,發現被提了好多warning XD : 幾個印象比較深的提出來跟大家分享一下 : 1.parseInt : 平常習慣就是直接 var num = parseInt("123"); : 後來才發現原來parseInt第二個參數不填也會被報warning : 所以嚴謹一點的寫法應該是這樣 var num = parseInt("123", 10); 10就是10進位 : 2.逗號問題 : 我也不知道為什麼這樣有問題 : var context = { "a" : "Hello", "b" : "Reject", "c" : "Good Night" : ,"d" : "Nothing", "e" : "Ajax"}; : 改成這樣就沒有出現warning了 : var context = { "a" : "Hello", "b" : "Reject", "c" : "Good Night", : "d" : "Nothing", "e" : "Ajax"}; : 雖然都可以run,我也不知道到底差在哪 : 3.Function 位置 : 假設有二個Function : Function initPage(){ : sayHello(); : } : Function sayHello(){ : alert("Hello"); : } : 我知道這樣也是可以執行,但它還是說你的sayHello在被呼叫時尚未定義 : 所以想請問一下Function在被呼叫時尚未定義會不會造成什麼潛在的影響? function a(){ b(); } a();//fine function b(){ alert(0); } var c = function(){ d(); } try{ c(); } catch(e){//error alert('error'); } var d = function(){ alert(1); } 我是這樣理解…… function b(){} 這種宣告方式會被拉到一開始就執行 var d = function(){} 則是瀏覽器讀到宣告的位置才會執行 呃…再準確一點解釋,這兩種宣告方式都會被拉到最開始的地方去定義; 但 b一直都是 function 而 d一開始是 undefined,一直到 var d = function(){} 這時候才被賦值為 function == 想到另一段程式.... var t2 = 20; function test2() { return say(); // 可以把這兩行對調 var t2 = 10; // 再執行看看 function say() { return t2; } } alert(test2());//10? 20? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 180.176.72.116 ※ 編輯: grence 來自: 180.176.72.116 (06/09 23:41)
kenzou:答案是undefined。 06/09 23:57
※ 編輯: grence 來自: 180.176.72.116 (06/10 01:12)