五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現在的位置: 365建站網 > 365文章 > js(JavaScript)中Number()、parseInt()和parseFloat()的區(qū)別

js(JavaScript)中Number()、parseInt()和parseFloat()的區(qū)別

文章來源:365jz.com     點擊數:287    更新時間:2017-08-17 08:57   參與評論

一:Number()

概述:Number 對象由 Number() 構造器創(chuàng)建,是經過封裝的能讓你處理數字值的對象。在非構造器上下文中 (如:沒有 new 操作符),Number 能被用來執(zhí)行類型轉換。
語法:Number(value);

如果是Boolean值,true和false值將分別被轉換為1和0。

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

如果是null值,返回0。

如果是undefined,返回NaN。

如果是字符串:

  a.  如果字符串中只包含數字時,將其轉換為十進制數值,忽略前導0

  b. 如果字符串中包含有效浮點格式,如“1.1”,將其轉換為對應的浮點數字,忽略前導0

  c. 如果字符串中包含有效的十六進制格式,如“0xf”,將其轉換為相同大小的十進制數值

  d. 如果字符串為空,將其轉換為0

  e. 如果字符串中包含除上述格式之外的字符,則將其轉換為NaN

如果是對象,則調用對象的valueOf()方法,然后依照前面的規(guī)則轉換返回的值。如果轉換的結果是NaN,則調用對象的toString()方法,然后再依照前面的規(guī)則轉換返回的字符串值。

例: 

 var num1 = Number("Hello world");       //NaN
 var num2 = Number("");            //0
 var num3 = Number("0000011");        //11

二:parseInt()

概述:parseInt() 函數將給定的字符串以指定基數(radix/base)解析成為整數。

語法:parseInt(string, radix);

 參數:string:要被解析的值。如果參數不是一個字符串,則將其轉換為字符串。字符串開頭的空白符將會被忽略。

radix:一個2到36之間的整數值,用于指定轉換中采用的基數。比如參數"10"表示使用我們通常使用的十進制數值系統(tǒng)??偸侵付ㄔ搮悼梢韵喿x該代碼時的困惑并且保證轉換結果可預測。當忽略該參數時,不同的實現環(huán)境可能產生不同的結果。

處理整數的時候parseInt()更常用。parseInt()函數在轉換字符串時,會忽略字符串前面的空格,知道找到第一個非空格字符。

如果第一個字符不是數字或者負號,parseInt() 就會返回NaN,同樣的,用parseInt() 轉換空字符串也會返回NaN。

如果第一個字符是數字字符,parseInt() 會繼續(xù)解析第二個字符,直到解析完所有后續(xù)字符串或者遇到了一個非數字字符。

parseInt()方法還有基模式,可以把二進制、八進制、十六進制或其他任何進制的字符串轉換成整數。

基是由parseInt()方法的第二個參數指定的,所以要解析十六進制的值,當然,對二進制、八進制,甚至十進制(默認模式),都可以這樣調用parseInt()方法。

例:

 var num1 = parseInt("AF",16);           //175
    var num2 = parseInt("AF");            //NaN
    var num3 = parseInt("10",2);           //2  (按照二進制解析)
    var num4 = parseInt("sdasdad");         //NaN

三:parseFloat()

 概述:parseFloat()方法將參數中指定的字符串解析成為一個浮點數字并返回.
語法:parseFloat(string)

與parseInt() 函數類似,parseFloat() 也是從第一個字符(位置0)開始解析每一個字符。也是一直解析到字符串末尾,或者解析到遇見一個無效的浮點數字字符為止。

 也就是說,字符串中第一個小數點是有效的,而第二個小數點就是無效的了,它后面的字符串將被忽略。

 parseFloat() 只解析十進制,因此它沒有第二個參數指定基數的用法

 如果字符串中包含的是一個可解析為正數的數(沒有小數點,或者小數點后都是零),parseFloat() 會返回整數。

例:

 var num1 = parseFloat("123AF");           //123
  var num2 = parseFloat("0xA");            //0
  var num3 = parseFloat("22.5");            //22.5
  var num4 = parseFloat("22.3.56");         //22.3
  var num5 = parseFloat("0908.5");          //908.5

parseInt() 和parseFloat() 的區(qū)別在于:

  • parseFloat() 所解析的字符串中第一個小數點是有效的,而parseInt() 遇到小數點會停止解析,因為小數點并不是有效的數字字符。
  • parseFloat() 始終會忽略前導的零,十六進制格式的字符串始終會被轉換成0,而parseInt() 第二個參數可以設置基數,按照這個基數的進制來轉換。

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持365建站網!

如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網友會為你解答??! 點擊進入論壇

發(fā)表評論 (287人查看0條評論)
請自覺遵守互聯網相關的政策法規(guī),嚴禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學習

業(yè)務咨詢

· 技術支持
· 服務時間:9:00-18:00
365建站網二維碼

Powered by 365建站網 RSS地圖 HTML地圖

copyright © 2013-2024 版權所有 鄂ICP備17013400號