整合營銷服務(wù)商

          電腦端+手機端+微信端=數(shù)據(jù)同步管理

          免費咨詢熱線:

          五種js判斷是否為整數(shù)類型方式

          篇文章主要介紹了五種JavaScript判斷是否為整數(shù)類型方式,需要的朋友可以參考下

          這篇看看如何判斷為整數(shù)類型(Integer),JavaScript中不區(qū)分整數(shù)和浮點數(shù),所有數(shù)字內(nèi)部都采用64位浮點格式表示,和Java的double類型一樣。但實際操作中比如數(shù)組索引、位操作則是基于32位整數(shù)。

          方式一、使用取余運算符判斷

          任何整數(shù)都會被1整除,即余數(shù)是0。利用這個規(guī)則來判斷是否是整數(shù)。

          以上輸出可以看出這個函數(shù)挺好用,但對于字符串和某些特殊值顯得力不從心

          對于空字符串、字符串類型數(shù)字、布爾true、空數(shù)組都返回了true,真是難以接受。對這些類型的內(nèi)部轉(zhuǎn)換細節(jié)感興趣的請參考:JavaScript中奇葩的假值

          因此,需要先判斷下對象是否是數(shù)字,比如加一個typeof

          嗯,這樣比較完美了。

          方式二、使用Math.round、Math.ceil、Math.floor判斷

          整數(shù)取整后還是等于自己。利用這個特性來判斷是否是整數(shù),Math.floor示例,如下

          這個直接把字符串,true,[]屏蔽了,代碼量比上一個函數(shù)還少。

          方式三、通過parseInt判斷

          很不錯,但也有一個缺點

          竟然返回了false,沒天理啊。原因是parseInt在解析整數(shù)之前強迫將第一個參數(shù)解析成字符串。這種方法將數(shù)字轉(zhuǎn)換成整型不是一個好的選擇。

          方式四、通過位運算判斷

          這個函數(shù)很不錯,效率還很高。但有個缺陷,上文提到過,位運算只能處理32位以內(nèi)的數(shù)字,對于超過32位的無能為力,如

          復(fù)制代碼代碼如下:

          isInteger(Math.pow(2, 32)) // 32位以上的數(shù)字返回false了

          當(dāng)然,多數(shù)時候我們不會用到那么大的數(shù)字。

          方式五、ES6提供了Number.isInteger

          目前,最新的Firefox和Chrome已經(jīng)支持。

          以上就是判斷是否為整數(shù)類型的五種方式,這五種方式各有優(yōu)缺點,大家可以進行仔細比較,選擇最優(yōu)的進行使用。



          多時候?qū)τ星岸斯こ處焷碇v,頁面效果直接會轉(zhuǎn)嫁個CSS或JS,對HTML的一些屬性了解的并不充分,接下來介紹一些有意思的HTML屬性。

          1)Multiple

          顧名思義就是在一個輸入標(biāo)簽或選擇標(biāo)簽中可以輸入多個值

          <input type="file" multiple>

          2)Accept

          在<input>包含接受屬性,允許用戶傷上傳指定的文件類型。我們在設(shè)置的過程中,需要設(shè)置指定的文件格式。并用逗號分開即可。傳遞文件類型包含圖片、音頻、視頻、文檔,等自定義文件類型。

          <input type="file" accept=".png, .jpg">

          3)Contenteditable

          這個屬性比較有意思,允許用戶在前端HTML頁面進行對文本的編輯,只對DOM的可見部分進行編輯。

          <div contenteditable="true">我可以隨意編輯!</div>

          4)Spellcheck

          進行拼寫檢查的可編輯段落:

          <p contenteditable="true" spellcheck="true">這是一個段落。</p>

          5) Translate

          Translate告訴瀏覽器是否應(yīng)該翻譯內(nèi)容。例如,您可以使用它來防止Google Translate自動嘗試翻譯您的公司或品牌名稱。

          <footer><p translate="no">Mark</p></footer>

          6) Poster

          帶有預(yù)覽圖(海報圖片)的視頻播放器:

          注釋:Internet Explorer 8 以及更早的版本不支持 <video> 標(biāo)簽。

          <video controls poster="/images/mark.gif">
             <source src="movie.mp4" type="video/mp4">
             <source src="movie.ogg" type="video/ogg">
             Your browser does not support the video tag.
          </video> 

          7) Download

          download 屬性規(guī)定被下載的超鏈接目標(biāo)。

          在 <a> 標(biāo)簽中必須設(shè)置 href 屬性。

          該屬性也可以設(shè)置一個值來規(guī)定下載文件的名稱。所允許的值沒有限制,瀏覽器將自動檢測正確的文件擴展名并添加到文件 (.img, .pdf, .txt, .html, 等等)。

          avaScript 數(shù)據(jù)類型一共有 7 種:Undefined、Null、Boolean、String、Symbol、Number、Object。除了 Object 之外的 6 種屬于原始數(shù)據(jù)類型。有時,我們還會細分 Object 的類型,比如 Array,F(xiàn)unction,Date,RegExp 等。

          判斷方法

          typeof

          typeof 可以用來區(qū)分除了 Null 類型以外的原始數(shù)據(jù)類型,對象類型的可以從普通對象里面識別出函數(shù):

          問題一:typeof 不能識別 null,如何識別 null?

          答案:如果想要判斷是否為 null,可以直接使用===全等運算符來判斷(或者使用下面的Object.prototype.toString 方法):

          問題二:typeof 作用于未定義的變量,會報錯嗎?

          答案:不會報錯,返回"undefined"。

          問題三:typeof Number(1)的返回值是什么?

          答案:"number"。注意 Number 和 String 作為普通函數(shù)調(diào)用的時候,是把參數(shù)轉(zhuǎn)化為相應(yīng)的原始數(shù)據(jù)類型,也就是類似于做一個強制類型轉(zhuǎn)換的操作,而不是默認(rèn)當(dāng)做構(gòu)造函數(shù)調(diào)用。注意和 Array 區(qū)分,Array(...)等價于 new Array(...)

          問題四:typeof new

          Number(1)的返回值是什么?

          答案:"object"。

          instanceof

          instanceof 不能用于判斷原始數(shù)據(jù)類型的數(shù)據(jù):

          instanceof 可以用來判斷對象的類型:

          需要注意的是,instanceof 的結(jié)果并不一定是可靠的,因為在 ECMAScript7 規(guī)范中可以通過自定義 Symbol.hasInstance 方法來覆蓋默認(rèn)行為。

          Object.prototype.toString

          由上面的示例可知,該方法沒有辦法區(qū)分?jǐn)?shù)字類型和數(shù)字對象類型,同理還有字符串類型和字符串對象類型、布爾類型和布爾對象類型,另外,ECMAScript7 規(guī)范定義了符號 Symbol.toStringTag,你可以通過這個符號自定義Object.prototype.toString 方法的行為:

          因為 Object.prototype.toString 方法可以通過 Symbol.toStringTag 屬性來覆蓋默認(rèn)行 為,所以使用這個方法來判斷數(shù)據(jù)類型也不一定是可靠的。

          Array.isArray

          Array.isArray(value)可以用來判斷 value 是否是數(shù)組:


          主站蜘蛛池模板: 国产剧情国产精品一区| 久久国产精品无码一区二区三区| 亚洲AⅤ视频一区二区三区| 丰满人妻一区二区三区视频| 99精品国产高清一区二区麻豆| 一区二区在线播放视频| 精品视频一区二区三区四区| 中文字幕精品亚洲无线码一区应用| 国产乱码精品一区二区三区四川人| 在线观看午夜亚洲一区| 精品一区二区三区AV天堂| 日韩精品人妻一区二区三区四区| 亚洲欧美日韩一区二区三区在线| 亚洲美女视频一区二区三区| 久久久久女教师免费一区| 国模精品视频一区二区三区| 精品一区二区三区四区在线播放| 91一区二区三区| www一区二区三区| 麻豆一区二区三区蜜桃免费| 亚洲AV无码一区二区三区鸳鸯影院 | 亚洲一区二区三区香蕉| 无码欧精品亚洲日韩一区夜夜嗨 | 国产成人久久精品麻豆一区| 日韩在线观看一区二区三区| 无码日本电影一区二区网站| 中文字幕视频一区| 精品深夜AV无码一区二区| 亚洲AV无码一区二区三区DV| 夜夜添无码试看一区二区三区| 国产成人精品一区在线| 岛国精品一区免费视频在线观看| 高清一区二区三区| 合区精品久久久中文字幕一区| 国模一区二区三区| 国产成人av一区二区三区在线| 日韩视频一区二区| 日本人真淫视频一区二区三区| 高清无码一区二区在线观看吞精| 波霸影院一区二区| 一区二区三区影院|