日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Javascript中字符串转数字

發布時間:2025/4/16 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Javascript中字符串转数字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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中字符串转数字的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。