008

(6 / 8)
⚡ 登入後報錯可獲 3天VIP 免廣告——立即登入

凡兩眼露出精光,感覺自已已經抓住了問題的要害。num1就是我傳進去的數字1經過tostring方法得到的字符串“1”,然後把“1”以“.”進行分割。

“啊,我明白了,原來如此。num1.split(".")[1]這句代碼的意思是將變量num1根據“.”進行分隔。這個時候num1的值為1,本來就沒有點號。也就是說,給字符串“1”根據“.”分隔,那麼隻會得到一個隻有單個數據的數組:[“1”]。又因為數組的下標是從0開始的,所以[1]代表從數組的第2個位置獲取數據。可是num1.split(".")得到的數組隻有一個元素,換句話說,隻有下標為0的位置裡才有數據,因此,強行去[1]的地方獲取數據自然是不可行的,報錯也自然在情理之中了。

2.9 indexof方法

葉小凡開始思索解決方案。

“之所以會出現這個問題,是因為我在編寫代碼的時候,想當然地認為傳入的數字一定是小數。其實不然,傳入的數字是整數的可能性還是很大的,那麼該怎麼辦呢?有了,我不妨在獲取小數位數之前判斷一下,如果是小數,就按照原先的方法進行,否則就默認小數位數是0!”

圖2-19 程序流程

程序流程如圖2-19所示。“接下來的問題就是如何判斷是否有小數點,我記得字符串對象有一個indexof方法,說不定可以派上用場。”

根據自已的記憶,葉小凡開始緩緩回憶indexof方法的使用法則。首先,隻要是字符串,就會有indexof方法。比如,現在定義一個字符串,然後調用indexof方法。

圖2-20 運行結果

結果如圖2-20所示。indexof的意思是在原字符串中搜索一個特定的字符串,比如從“123456”中搜索“2”,如果存在“2”,就把這個字符串在原字符串中的位置返回。和數組一樣,字符串的下標也是從0開始的。因此,用indexof方法從“123456”中搜索“2”,返回的結果是1,而不是2。葉小凡暗想,關於indexof的記載,在《Javascript基礎修煉要訣》這本功法秘籍上也就僅此而已了。可能對於絕大多數的弟子而言,掌握到如此地步已是難得。要知道,方法就是函數,函數的調用需要打一個括號。即便是這些,也已經不是一個初學者所能覬覦和掌握的了。往往是那些天之驕子,比如林濤這般的幼兒園巔峰實力的修土才能掌握得了。

可能連葉小凡自已都沒有想到,自已對函數的理解已經達到了幼兒園巔峰的境界。葉小凡是一個充滿好奇的人,凡事都喜歡多問幾個為什麼。葉小凡之前就在想,如果一個字符串調用indexof方法查詢某個匹配項,而這個需要查詢的匹配項在字符串中不存在,那又會怎麼樣呢?

思考完畢,葉小凡立刻行動,打出以下代碼並立刻執行。

圖2-21 運行結果

結果如圖2-21所示。“原來如此,查詢一個不存在的匹配項,得到的結果就是-1啊!這就好辦了,判斷一個數字是否是小數,隻需要用indexof方法就可以了,用這個方法查詢‘.’,得到一個返回值。隻要返回值不為-1,就說明有小數點。有小數點,那就說明這個數是小數。”

就是這麼回事。葉小凡篤定主意,眉頭開始舒展,沉默片刻後又開始運功,打出了一段代碼。

葉小凡觀察著代碼,和自已最開始的思路進行比對,確認沒有問題後便著手測試。

“首先試一下相同位數的小數相加吧!”

話音剛落,葉小凡結起手印,兩個小數瞬間出現在手掌中,在他的運功下傳入add函數。執行函數:

add( 1.01, 2.02);

結果如圖2-22所示。成功了,葉小凡淡淡一笑,再來一次位數不同的。

add( 1.01, 2.002);

結果如圖2-23所示。也沒有問題,很好,再來測試最後一個吧,如果兩個小數的位數都是3位呢?葉小凡再一次運功,執行函數:

圖2-22 運行結果

圖2-23 運行結果

;)200.2 ,100.1 (dda

!噬反到遭,敗失數函行執凡小葉”!噗“。示所42-2圖如果結

果結行運 42-2圖

𝑤𝑡.𝑝𝑜𝑜問訪請,新更節章新最取獲

法方ecalper 01.2

”?啊利順很都明明才剛,樣這會麼怎“

。碼代行一出打手隨凡小葉。題問有就身本0001以乘100.1,說是就也,0001是都數倍的大放,中例案試測個這在。題問點有是還算計確精的數小於對tpircsavaJ來看,位3是都麵後點數小的200.2和100.1?呢敗失了遇遭候時的試測次一後最在麼什為。確準很都果結算計個兩前且而,題問有沒說理按路思個這,思沉入陷禁不凡小葉

;)0001 * 100.1(trela

果結行運 52-2圖

。零補麵後字數的小較在接直以可就分部的來出多以所,位幾多的小較比數位數小的數小的大較為因。掉去點數小把,理處的同相做是也數位的大較對,掉去點數小的中字數個那的小較把先脆乾就麼那,通不行能可有法乘然既,說來單簡。換替用利是而,法乘作不是就那,案方的新了有凡小葉,快很。了路思種一換不得不已自來看,慨感凡小葉!啊題問的失丟度精有會然依算計的法除乘數小,法減加是僅不來看,了題問出然果。示所52-2圖如果結

2比數位數小的100.1,性致一的數位證保了為,1001了成變就100.1麼那,掉去也點數小的100.1把後然;22了成變就2.2,掉去點數小的中2.2把先,2.2和100.1為別分,數小個2有在現,如比


✅ 付款功能已修復,現在可以正常購買了 — 支援信用卡 · Apple Pay · Google Pay · WebATM · ATM 轉帳
😤 廣告總在最入戲的時候跳出來?
月付 $5 USD,升級 VIP 後全站所有頁面廣告立即全關——
不是只有這本書,是整個 oop.tw 每一頁、每一章,從此一路讀到底不被打斷。 $5 USD ≈ 一杯珍奶的錢,換一整個月零廣告清爽閱讀 · 隨時可取消
✅ 全站廣告全關 ✅ 工口專區全本解鎖 ✅ 月卡 $5 USD · 季卡 $13 USD · 年卡 $45 USD
⭐ 登入 / 免費註冊後升級
加我 LINE 好友,分享好書不錯過
第一時間獲得新書推薦、書單更新通知
立即加入
上一頁 書頁/目錄
/ 8 頁
下一頁
為本書評分(每位讀者可評一次,提交後無法修改)
發表評論
以 匿名讀者 身份發表
讀者評論