国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 18:22:49
字體:
供稿:網(wǎng)友

一:Number()

如果是Boolean值,true和false值將分別被轉(zhuǎn)換為1和0。

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

如果是null值,返回0。

如果是undefined,返回NaN。

如果是字符串:

  a.  如果字符串中只包含數(shù)字時(shí),將其轉(zhuǎn)換為十進(jìn)制數(shù)值,忽略前導(dǎo)0

  b. 如果字符串中包含有效浮點(diǎn)格式,如“1.1”,將其轉(zhuǎn)換為對應(yīng)的浮點(diǎn)數(shù)字,忽略前導(dǎo)0

  c. 如果字符串中包含有效的十六進(jìn)制格式,如“0xf”,將其轉(zhuǎn)換為相同大小的十進(jìn)制數(shù)值

  d. 如果字符串為空,將其轉(zhuǎn)換為0

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

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

例: 

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

二:parseInt()

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

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

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

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

基是由parseInt()方法的第二個(gè)參數(shù)指定的,所以要解析十六進(jìn)制的值,當(dāng)然,對二進(jìn)制、八進(jìn)制,甚至十進(jìn)制(默認(rèn)模式),都可以這樣調(diào)用parseInt()方法。

例:

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

三:parseFloat()

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

 也就是說,字符串中第一個(gè)小數(shù)點(diǎn)是有效的,而第二個(gè)小數(shù)點(diǎn)就是無效的了,它后面的字符串將被忽略。

 parseFloat() 只解析十進(jìn)制,因此它沒有第二個(gè)參數(shù)指定基數(shù)的用法

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

例:

 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() 所解析的字符串中第一個(gè)小數(shù)點(diǎn)是有效的,而parseInt() 遇到小數(shù)點(diǎn)會停止解析,因?yàn)樾?shù)點(diǎn)并不是有效的數(shù)字字符。
  • parseFloat() 始終會忽略前導(dǎo)的零,十六進(jìn)制格式的字符串始終會被轉(zhuǎn)換成0,而parseInt() 第二個(gè)參數(shù)可以設(shè)置基數(shù),按照這個(gè)基數(shù)的進(jìn)制來轉(zhuǎn)換。

以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持武林網(wǎng)!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 景谷| 合作市| 大悟县| 五指山市| 凌云县| 明星| 景宁| 临清市| 苗栗市| 武定县| 榆树市| 榆社县| 饶平县| 塔河县| 普陀区| 隆安县| 安泽县| 朝阳县| 青田县| 惠安县| 钦州市| 阿荣旗| 咸宁市| 资中县| 海盐县| 武隆县| 东宁县| 鲜城| 扶沟县| 西安市| 黑河市| 寻乌县| 靖江市| 和林格尔县| 阳泉市| 云南省| 仁化县| 宜黄县| 博湖县| 吉安市| 安吉县|