成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

原生js練習(xí)題---第三課

tomlingtm / 3137人閱讀

摘要:我這里更進(jìn)一步修復(fù)了這個,想法很簡單我可以等你輸完再把非數(shù)字全替換掉,只要把方法的正則改成全局匹配就。頁面加載后累加,自加實(shí)現(xiàn)效果頁面加載后累加,自加第三題的變種,換成觸發(fā)變化而已。

0x1用typeof查看數(shù)據(jù)類型

略過,不過typeof用來判斷數(shù)據(jù)類型是不太靠譜的,尤其是涉及到引用類型的時(shí)候,除非是要檢測一個變量是否有定義,否則最好采用Object.prototype.toString方法。

0x2用parseInt解析數(shù)字,并求和

實(shí)現(xiàn)效果:
3-02用parseInt解析數(shù)字,并求和

對這道題來說,用戶的輸入無法三種:數(shù)字、非數(shù)字、空字符(不輸入);而原題里的實(shí)現(xiàn)為防止用戶可謂是處心積慮,空字符直接彈窗、而非數(shù)字用keyup事件實(shí)現(xiàn)輸一個刪一個,用戶只能乖乖輸入數(shù)字了。但有個bug,按著按鈕不動是交替觸發(fā)keydownkeypress,這時(shí)輸一個刪一個的效果就沒用了。

我這里更進(jìn)一步修復(fù)了這個bug,想法很簡單---我可以等你輸完再把非數(shù)字全替換掉,只要把replace方法的正則改成全局匹配就ok。不過尷尬的是,既然有了這個無死角防止輸入非數(shù)字的效果,還要parseInt干嘛。。。

0x3累加按鈕,自加1

實(shí)現(xiàn)效果:
3-03累加按鈕,自加1

0x4輸入兩個數(shù)字,比較大小

實(shí)現(xiàn)效果:
3-04輸入兩個數(shù)字,比較大小

第二題的變種,這次還是正常點(diǎn),改用正則判斷,不用第二題那魔性的自動刪除字符了。

0x5頁面加載后累加,自加1

實(shí)現(xiàn)效果:
3-05頁面加載后累加,自加1

第三題的變種,換成setInterval觸發(fā)變化而已。

0x6判斷數(shù)字是否為兩位數(shù)

實(shí)現(xiàn)效果:
3-06判斷數(shù)字是否為兩位數(shù)

繼續(xù)正則判斷,這一期的題有點(diǎn)無聊啊。。

0x7網(wǎng)頁計(jì)算器

實(shí)現(xiàn)效果:
3-07網(wǎng)頁計(jì)算器

這題算是比較綜合的題,所以相比前面的題目花了更多的時(shí)間,難點(diǎn)就是功能的實(shí)現(xiàn)。這里我的實(shí)現(xiàn)思路是比較簡單的:就是用一個緩存區(qū)顯示輸入,再用一個公式區(qū)用緩存的數(shù)據(jù)構(gòu)造計(jì)算式,最后點(diǎn)擊等號時(shí)直接把計(jì)算式字符串用eval()執(zhí)行輸出。

這樣一來這題就變成字符串處理了,在構(gòu)造計(jì)算式時(shí)有很多分支情況,因?yàn)辄c(diǎn)擊數(shù)字、小數(shù)點(diǎn)和運(yùn)算符得考慮上一步的輸入,一共有五種情況:運(yùn)算符、數(shù)字、小數(shù)點(diǎn)、上一步的error、輸入溢出屏幕。窮舉出所有情況后,接下來就用正則判斷出這些分支,以及對這些分支的各自處理了。

如上所述,因?yàn)橹皇呛唵未直┑母F舉,所以js里寫了一堆if-else,感覺有點(diǎn)ugly⊙︿⊙。

除了js,還學(xué)到了一些新東西:比如文本框可以用readonly屬性設(shè)置只讀、用maxlength屬性限制輸入字符的個數(shù)(只能限制用戶輸入,如果像這題里直接修改文本框的value的話,這個限制是沒有卵用滴)。

再者,在按鈕樣式設(shè)計(jì)上,這里使用了sprite圖來做按鈕效果,相比用純css有更好的兼容性和可定制性;同時(shí)也了解到純色的背景圖片可以做得更小、要用時(shí)再平鋪開來,能有效提高網(wǎng)頁的性能。

08簡易網(wǎng)頁時(shí)鐘

實(shí)現(xiàn)效果:
3-08簡易網(wǎng)頁時(shí)鐘

以一秒為周期獲取當(dāng)前時(shí)間進(jìn)行更新即可。要注意的是得輸出的時(shí)間字符串都必須為兩位,這里使用replace方法搭配正則進(jìn)行格式化,由于正則本身就有判斷和篩選的作用,就不用再羅哩羅嗦地去判斷每個字符串的長度了,寫起來更加簡潔優(yōu)雅。

09倒計(jì)時(shí)時(shí)鐘(100秒)

實(shí)現(xiàn)效果:
3-09倒計(jì)時(shí)時(shí)鐘(100秒)

核心內(nèi)容和上一題差不多,只是把計(jì)時(shí)改變的內(nèi)容由實(shí)時(shí)的時(shí)間換成了遞減的秒數(shù)、再加上一個按鈕控制動作。為了封裝性更好,這里還用了一個單例對象來實(shí)現(xiàn)計(jì)時(shí)器,減少了無謂的全局變量。有了這個干凈的接口,代碼看起來清爽多了~

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/78993.html

相關(guān)文章

  • VUE.js三課模板語法

    摘要:模板語法使用了基于的模版語法,允許開發(fā)者聲明式地將綁定至底層實(shí)例的數(shù)據(jù)。的核心是一個允許你采用簡潔的模板語法來聲明式的將數(shù)據(jù)渲染進(jìn)的系統(tǒng)。指令用于在表達(dá)式的值改變時(shí),將某些行為應(yīng)用到上。 Vue.js 模板語法 Vue.js 使用了基于 HTML 的模版語法,允許開發(fā)者聲明式地將 DOM 綁定至底層 Vue 實(shí)例的數(shù)據(jù)。 Vue.js 的核心是一個允許你采用簡潔的模板語法來聲明式的將數(shù)...

    lx1036 評論0 收藏0
  • 體驗(yàn)javascript之美三課 對象、類型、操作符

    摘要:大彬哥今天歲,家住在北京,工作是前端開發(fā)講師。另一個學(xué)生是趙日天,今年歲,家住在濟(jì)南,工作是碼農(nóng)。默認(rèn)值大彬哥我是我是大彬哥防止變量覆蓋你的庫庫里常用如有疑問加入和更多資料,群 對象 js對象我只想說三件事 1.js中的對象就是鍵值對,和java等語言的對象完全不一樣。 {name:leo,age:18} 2.鍵可以定義多次,值卻只能是最后一個。這個跟變量有點(diǎn)類似。 3.鍵值對里面還...

    codecook 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<