,假如max為2,那麼就需要把2變成100,也就是10×10。同理,如果max為1,那就是10了。具體邏輯如下所示。
max = 1---> 10
max = 2---> 10 × 10
max = 3---> 10 × 10 × 10
max = 4---> 10 × 10 × 10 × 10
max = 5---> 10 × 10 × 10 × 10 × 10
max = 6---> 10 × 10 × 10 × 10 × 10 × 10
如何實現這個邏輯呢?葉小凡思索了一下,決定用for循環完成,於是他右手一揮,一段代碼流便憑空出現。
假如傳入的數字是0.2和0.02,那麼max就是2,for循環會進去兩次,每次都將倍數擴大10倍,獲得的結果就是100。下一步就是把兩個小數同時乘這個倍數。
//兩個小數同時乘得到的這個倍數
num1 = num1 * beishu;
num2 = num2 * beishu;
最後,相加以後再除以倍數,把結果返回出去。
//相加完畢後,再將結果除以倍數
var sum = (num1 +num2) / beishu;
return sum;
葉小凡長出了一口氣,額頭已經微微冒汗,心裡想:“終於把函數完成了,接下來就是測試。”
“嗯,是時候表演真正的技術了!”
隻見葉小凡結起手印,開始調用函數!
alert( add( 0.1, 0.2));
結果如圖2-10所示,一束藍色光暈閃過,0.3的結果以彈窗的形式飛出。
圖2-10 運行結果
“成功了!”葉小凡十分欣喜。就在這個時候,他突然想到了另外一個問題。
“還有一個問題,這個函數現在雖然可以正確地計算0.1+0.2,但不知道它能否正確計算1+0.2?”也就是說,如果傳入的參數不是小數而是整數,又會怎樣?於是,葉小凡又開始測試。
“試試吧,說不定也可以呢!”
說著,葉小凡打出一段測試代碼。
alert( add( 1, 0.2));
函數調用,發動!
更多小說內容請訪問o o p . t w
這一次,一道紅光一閃而過,葉小凡調用函數失敗,當即受到反噬。
“糟糕,怎麼會這樣!”
2.8 函數調試
本節以360極速瀏覽器為例,借由主人公葉小凡的“內功心法”講解Javascript代碼的調試步驟。基本步驟如下,打開瀏覽器後,按f12鍵進入開發者模式。調試界麵如圖2-11所示。
圖2-11 調試界麵(1)
所謂程序斷點,就是程序被中斷的地方。比如,你在某一行代碼上打了一個斷點,當程序運行到這一行代碼的時候就會停留。程序開發者可以在斷點處對代碼進行調試,使代碼一行一行地走下去,看看什麼地方出現了問題。
調試界麵如圖2-12所示。
圖2-12 調試界麵(2)
當程序運行後,就會在第8行中斷。如果想要進行到下一步,就單擊圖2-13所示的框內按鈕即可。
圖2-13 將程序進行到下一步
。試調序程束結製強後然,息信誤錯的色紅個一出給台製控在會就,錯出碼代行一某的中其一萬,況情種一有還。行的在所點斷個一下到轉跳刻立會則,點斷他其有還麵下果如。畢完行執部全序程的下剩將會就,點斷他其有沒麵下點斷該果如。碼代有所的麵下點斷前當行執地速迅會就,鈕按個這擊單果如。行運速全是鈕按的邊左最,上板麵試調個這在
。下如息信誤錯,錯報數函果結,2.0和1數參入傳,數函dda用調凡小葉
示提誤錯 41-2圖
。行21第了在出誤錯,示所41-2圖如
;htgnel.]1[)"."(tilps.1mun = a rav
。數函dda用調新重後然,點斷個一出打行21第在他,先首。試調行進碼代對功運即當凡小葉,了錯出序程
”!用調數函我看,嗬“
;))2.0 ,1 (dda (trela
。況情行執的碼代到察觀細仔以可念心的凡小葉次這以所,點斷了打為因
)3(麵界試調 51-2圖
。行21第了在留停碼代在現。”2.0“和”1“的型類串符字了成變,後法方gnirtsot過經自各們它,2.0是則2mun,1數參個一第的入傳候時的用調數函是就1mun現發,碼代跟緊念心的凡小葉,示所51-2圖如麵界試調
”!走。行31第到走我讓在現,誤錯有沒看來前目,好很“
。前眼的凡小葉了在現出又誤錯個那前之,過閃光紅束一是又,時這在就
位定誤錯 61-2圖
息信誤錯 71-2圖
。度長的串符字個一了表代性屬htgnel。4是就性屬htgnel的它,”dcba“串符字,如比再。3是就性屬htgnel的它,”100“串符字,如比。的錯有沒是個這,性屬htgnel個一有都,串符字是凡但,先首。因原考思始開來下靜冷凡小葉”?嗎性屬htgnel個一有都串符字說是不,到不取性屬htgnel,樣這會麼怎“。示所71-2圖和61-2圖如息信誤錯和位定誤錯
”?串符字是不就根壓]1[)"."(tilps.1mun明說是不豈麼那,性屬htgnel有沒然既!等等“。示所81-2圖如果結
果結行運 81-2圖
小葉