欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Javascript中字符串轉數字

系統 2076 0

我們知道最簡潔的數字轉字符串方法是:

        
          var
        
         num = 123
        
          ;

        
        
          var
        
         string = num + "";
      

也就是在數字后面加上一個空字符。那么最簡潔字符串轉數字方法呢?

?

字符串只能進行加法(拼接)

字符串進行加法(拼接)是很常見的,但是字符串進行減法、乘法、除法呢?

這似乎很難定義,實際上字符串沒有減法、乘法、除法操作。

但Javascript是動態語言,如果你拿兩個字符串進行這三種操作的時候,他會嘗試將其轉成數字再進行相應的操作。例如:

      alert("45" - "32"); 
      
        //
      
      
        13
      
    
      alert("5" * "6"); 
      
        //
      
      
        30
      
    
      alert("12" / "3"); 
      
        //
      
      
        4
      
    

但這種轉換操作和parseInt和parseFloat不太像,而和Number比較像,比如:

      alert("123a" - "2bc"); 
      
        //
      
      
        NaN
      
      
alert(parseInt("123a") - parseInt("2bc")); 
      
        //
      
      
        121
      
      
alert(Number("123a") - Number("2bc")); 
      
        //
      
      
        NaN
      
    

也就是說,這種轉換和Number一樣,會將非純數字型字符串轉成NaN,表示其是非數字。

而parseInt、parseFloat則會取出字符串中取出前面的能表示成數字的部分,而忽略掉后面不能表示成數字的部分。

?

最簡潔的字符串轉數字方法

借助字符串在進行其不能進行的運算時會先嘗試轉成數字這個特性。我們可以對字符串前加上正符號來將字符串轉成數字。如:

      
        var
      
       num = +"45"
      
        ;
alert(
      
      
        typeof
      
       num); 
      
        //
      
      
        number
      
    

jQuery中有一個這個方法的應用,比如我們得到一個字符串怎么判斷他能不能當成數字看待呢?jQuery的方法:

      
        var
      
       string = "321";  
      
        //
      
      
        這個是得到的字符串,隨意是什么
      
      
alert(+string + "" === string);  
      
        //
      
      
        true表示可以當成數字,否則不行 
      
    

我們注意到,如果string = "000",那么返回是false。

但實際上jQuery是為了獲取HTML5里的data-Attribute的屬性,由于data-Attribute屬性返回的必然是字符串。如果字符串是"000",那么也不應當將其看做是數字0。

thanks? shuaisam

如果要得到字符串是不是由純數字組成可以這么判斷:

      
        var
      
       string = "000"
      
        ;
alert(
      
      +string + "" !== "NaN");
    

其實利用這個特性還有其他方法,比如:

      
        var
      
       num = "45" - 0
      
        ;
alert(
      
      
        typeof
      
       num); 
      
        //
      
      
        number
      
    
      
        var
      
       num = "45" * 1
      
        ;
alert(
      
      
        typeof
      
       num); 
      
        //
      
      
        number
      
    
      
        var
      
       num = "45" / 1
      
        ;
alert(
      
      
        typeof
      
       num); 
      
        //
      
      
        number
      
    

?

進制問題?

0x開頭的是16進制,所以Number和parseInt都會對16進制進行相應的轉換,字符串的自動轉換也是這般:

      alert(parseInt("0x10")); 
      
        //
      
      
        16
      
      
alert(Number("0x10")); 
      
        //
      
      
        16
      
      
alert(+"0x10"); 
      
        //
      
      
        16
      
    

不過parseFloat有些鬧別扭,他不認識16進制,結果變成這樣:

      alert(parseFloat("0x10")); 
      
        //
      
      
        0
      
    

更悲劇的是0開頭的,我們知道0開頭可以用來表示8進制,在Number和字符串自動轉換中,0開頭會當成十進制來獲取,如:

      alert(Number("010")); 
      
        //
      
      
        10
      
      
alert(+"010"); 
      
        //
      
      
        10
      
    

而parseInt中卻很悲催,ECMAScript中并未對此進行強制規定所以出現了下面的情況:

      alert(parseInt("010")); 
      
        //
      
      
        8 in Firefox & IE
      
    
      alert(parseInt("010")); 
      
        //
      
      
        10 in Chrome
      
    

╮(╯_╰)╭ 難怪很少見到Javascript中用到8進制,如果要確保8進制只能使用parseInt的第二個參數了:

      alert(parseInt("010", 8)); 
      
        //
      
      
        8
      
    

parseFloat繼續不認識8進制,所以:

      alert(parseFloat("010")); 
      
        //
      
      
        10
      
    

?

?

Javascript中字符串轉數字


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久777国产线看观看精品 | 精品久久久久久蜜臂a∨ | 日韩福利视频在线 | 91福利一区二区在线观看 | 欧美2区| 99视频网站 | 欧美激情一区二区三区视频高清 | 久草大| www国产成人免费观看视频,深夜成人网 | 粉嫩粉嫩芽的虎白女18在线视频 | 国产亚洲精品久久久久久打不开 | 三级免费网址 | 99久热国产精品视频尤物不卡 | 君岛美绪一区二区三区 | 国产精品91在线播放 | 五月天国产视频 | 欧美亚洲激情视频 | 欧美一区二区 | 日韩一二三区视频 | 扒开双腿进入做爰视频 | 成年视频网站免费观看 | 欧美一区二区三区视频 | 伊人成人在线观看 | 亚洲国产精品日韩高清秒播 | www.精品| 一区二区三区免费视频 www | 手机av在线| 亚洲第一黄色网址 | 国产a做爰全过程片 | 天天干天天干 | 日韩在线视频观看 | 日日摸夜夜添夜夜添精品视频 | 97超精品视频在线观看 | 亚洲一区免费在线 | 亚洲午夜精品一区二区 | 激情小说激情图片激情电影 | 国产片侵犯亲女视频播放 | 色成人综合 | 久久国产精品一区二区三区 | 精品国产成人在线 | 日韩欧美不卡在线 |