国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

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

tomlingtm / 3131人閱讀

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

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

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

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

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

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

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

0x3累加按鈕,自加1

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

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

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

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

0x5頁(yè)面加載后累加,自加1

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

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

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

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

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

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

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

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

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

如上所述,因?yàn)橹皇呛?jiǎn)單粗暴的窮舉,所以js里寫(xiě)了一堆if-else,感覺(jué)有點(diǎn)ugly⊙︿⊙。

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

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

08簡(jiǎn)易網(wǎng)頁(yè)時(shí)鐘

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

以一秒為周期獲取當(dāng)前時(shí)間進(jìn)行更新即可。要注意的是得輸出的時(shí)間字符串都必須為兩位,這里使用replace方法搭配正則進(jìn)行格式化,由于正則本身就有判斷和篩選的作用,就不用再羅哩羅嗦地去判斷每個(gè)字符串的長(zhǎng)度了,寫(xiě)起來(lái)更加簡(jiǎ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ù)、再加上一個(gè)按鈕控制動(dòng)作。為了封裝性更好,這里還用了一個(gè)單例對(duì)象來(lái)實(shí)現(xiàn)計(jì)時(shí)器,減少了無(wú)謂的全局變量。有了這個(gè)干凈的接口,代碼看起來(lái)清爽多了~

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/78993.html

相關(guān)文章

  • VUE.js三課模板語(yǔ)法

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

    lx1036 評(píng)論0 收藏0
  • 體驗(yàn)javascript之美三課 對(duì)象、類(lèi)型、操作符

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

    codecook 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<