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

資訊專欄INFORMATION COLUMN

關于JS中的數(shù)值轉(zhuǎn)換

hankkin / 738人閱讀

摘要:在我們做網(wǎng)站的過程中,我們經(jīng)常會用到數(shù)值轉(zhuǎn)換,比如購物車中的商品價格加和,今天我就總結(jié)一下我們常用的數(shù)值轉(zhuǎn)換。在中,有三個函數(shù)可以實現(xiàn)非數(shù)值轉(zhuǎn)化為數(shù)值,分別是。而和是專門用于字符串轉(zhuǎn)換為數(shù)值的。

??在我們做網(wǎng)站的過程中,我們經(jīng)常會用到數(shù)值轉(zhuǎn)換,比如購物車中的商品價格加和,今天我就總結(jié)一下我們常用的數(shù)值轉(zhuǎn)換。
??在JS中,有三個函數(shù)可以實現(xiàn)非數(shù)值轉(zhuǎn)化為數(shù)值,分別是Number() 、parseInt()、parseFloat()。
??Number()函數(shù)可以用于轉(zhuǎn)換任何數(shù)據(jù)類型。而parseInt()、和parseFloat()是專門用于字符串轉(zhuǎn)換為數(shù)值的。所以這三個函數(shù)會出現(xiàn)相同的輸入得到不同的輸出結(jié)果。
??首先,說說Number()函數(shù),Number()函數(shù)在轉(zhuǎn)換時會遵循一系列規(guī)則:

如果是布爾值,true和flase將轉(zhuǎn)換為1和0;

如果是數(shù)字值,只是簡單的傳入和返回。

如果是null值,返回0。

如果是undefined,返回NaN。

如果是字符串,則是這樣的規(guī)則 :
??當字符串中只包含數(shù)字(整型或浮點型)時,包括前面帶正負號的情況,會將其轉(zhuǎn)換為十進制數(shù)值,例如“142”.“12.5”會轉(zhuǎn)換為142和12.5,“014”和“021.2”會轉(zhuǎn)換為14和21.2,前面的零會忽略;當字符串中包含有效的十六進制的格式,則會將其轉(zhuǎn)換為相同大小的十進制整數(shù)值;當字符串是空的時候,即不包含任何字符時,會轉(zhuǎn)換為0;除了上述格式之外的字符,都會轉(zhuǎn)換為NaN。

??還有值得注意的一點就是一元加操作符的操作與Number()函數(shù)相同。
??其實,我們更常用的是parseInt()函數(shù),因為Number()函數(shù)在轉(zhuǎn)換過程中挺復雜而且有些地方不太合理。
??parseInt()函數(shù)在轉(zhuǎn)換時會忽略字符串前面的空格,直到找到第一個非空格字符,如果這個字符不是數(shù)字或者負號,則會返回NaN;如果是,則繼續(xù)解析第二個直到最后一個非數(shù)字字符。舉兩個例子:

 var num1=parseInt("1254dhfs");     //1254
 var num1=parseInt("1254d23fs");     //1254
 var num2=parseInt("12.5");         //12

第一個和第二個例子中,會轉(zhuǎn)換為1254,因為后面的字符不是數(shù)字字符。第三個例子中,會轉(zhuǎn)換為12,因為“ . ”是非數(shù)字字符。如果想讓浮點型數(shù)字全部轉(zhuǎn)換,應該用parseFloat();后面我們再說。
??parseInt()函數(shù)能狗識別各種進制格式的字符串,但必須是以數(shù)字開頭的。如下例子:

 var s1=parseInt("070");  //56(八進制)
 var s2=paeseInt("10");   //10(十進制)
 var s3=parseInt("0xf");  //15(十六進制)

但是在ECMAScript 3 JavaScript引擎中,“070”是視為八進制字面量,轉(zhuǎn)換后為56;但是在ECMAScript 5 JavaScript引擎中卻已經(jīng)不具有解析八進制的能力,所以前面的0被看為無效,最后結(jié)果是70。不過,parseInt()函數(shù)提供了第二個參數(shù),用來注明是哪一個進制的值。如下例子:

 var s1=parseInt("070",8);   //56
 var s2=parseInt("AF",16);   //175
 var s2=parseInt("AF");       //NaN

??parseFloat()函數(shù)與parseInt()函數(shù)類似,但是parseFloat()函數(shù)解析時,第一個小數(shù)點是有效的,第二個之后的小數(shù)點則無效,最重要的是parseFloat()函數(shù)只用于解析十進制整數(shù)格式,所以不會識別八進制和十六進制的0.會只轉(zhuǎn)換這個0,而且也沒有第二個參數(shù)來指定進制。值得注意的是,parseFloat()函數(shù)會在沒有小數(shù)點或者小數(shù)點后都是0的情況下返回整數(shù)。例子如下:

 var s1=parseFloat("22.2.5");  //22.2
 var s2=parseFloat("0245.5");  //245.5
 var s3=parseFloat("2.000");   //2
 var s4=parseFloat("2.0050");  //2.005
 var s5=parseFloat("3.125e7"); //31250000
 var s4=parseFloat("0xA");      //0

??????????????????????????????????????????參考自《JavaScipt高級程序設計》

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

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

相關文章

  • 關于NaN

    摘要:它有兩個重要的性質(zhì)與任何值都不相等,包括自身任何涉及的操作都會返回。關于是對象的一個方法,比較詭異的是并不是判斷參數(shù)本身是不是,而是判斷是不是。返回的結(jié)果是一個布爾值。先用轉(zhuǎn)換參數(shù),再判斷轉(zhuǎn)換后的結(jié)果是不是不等于自身。 昨天看到一個面試題:怎樣實現(xiàn) isNaN() 方法? 細細研究了一下 NaN,發(fā)現(xiàn)這個東西不常用,坑卻異常多,頗有 茴 字有幾種寫法的感覺,這里記錄下總結(jié)的東西吧。 ...

    jubincn 評論0 收藏0
  • Js中的Number

    摘要:如果參數(shù)不是數(shù)值都返回去掉非數(shù)字部分返回數(shù)字部分遇到的第一個非數(shù)字停止相比可以多識別一個和是將全局方法和,移植到對象上面,行為完全保持不變。 關于Number的常用方法和注意點 NaN NaN 是代表非數(shù)字的特殊屬性 NaN 注意點 NaN不是一個數(shù) 但是屬于number類型 typeof NaN //number NaN和NaN不相等 NaN == NaN //false 何時會出現(xiàn)...

    LiuZh 評論0 收藏0
  • 透徹研究Javascript類型轉(zhuǎn)換

    摘要:注釋空數(shù)組空對象轉(zhuǎn)換為布爾型也是坑。系統(tǒng)會在自動類型轉(zhuǎn)換的時候調(diào)用他們,所以我們通常不需要手動調(diào)用他們。嚴格相等不存在類型轉(zhuǎn)換,對于類型不同的兩個值直接返回。 Javascript 中有5種基本類型(不包括 symbol),以及對象類型,他們在不同的運算中會被系統(tǒng)轉(zhuǎn)化為不同是類型,當然我們也可以手動轉(zhuǎn)化其類型。 Javascript 類型轉(zhuǎn)換中的坑極多,就連 Douglas Crock...

    dailybird 評論0 收藏0
  • JS關于JS的一些知識點(JS基礎,純記錄)

    摘要:如何讓根據(jù)拆箱轉(zhuǎn)換,以及的隱式轉(zhuǎn)換,可以如下寫為什么計算機中所有的數(shù)據(jù)都是以二進制存儲的,所以在計算機計算時要把數(shù)據(jù)先轉(zhuǎn)換成二進制進行計算,然后把計算結(jié)果轉(zhuǎn)換成十進制。會存在精度丟失問題和的二進制都是以無線循環(huán)的小數(shù)的二進制的二進制 本想著記筆記里,但是筆記里沒有分類,還是以文章的形式,當個人總結(jié)吧,這一篇就當作JS基礎篇的記錄吧,有修改的和新增的持續(xù)更新~ 關于JS的一些小技巧 1:...

    SwordFly 評論0 收藏0
  • JS高程讀書筆記--第三章基本概念

    摘要:高程讀書筆記第三章語法中的一切變量函數(shù)名和操作符都區(qū)分大小寫。建議無論在任何情況下都指定基數(shù)函數(shù)與函數(shù)類似。返回對象的字符串數(shù)值或布爾值表示。 JS高程讀書筆記--第三章 語法 ECMAScript中的一切(變量、函數(shù)名和操作符)都區(qū)分大小寫。 不能把關鍵字、保留字、true、false和null用做標識符。 嚴格模式是為JavaScript定義了一種不同的解析與執(zhí)行模型。在嚴格模式...

    keithyau 評論0 收藏0

發(fā)表評論

0條評論

hankkin

|高級講師

TA的文章

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