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

首頁 > 編程 > JavaScript > 正文

js中parseInt函數(shù)淺談

2019-11-20 22:29:14
字體:
供稿:網(wǎng)友

從很熱門的實例parseInt("09")==0說起。
parseInt(number,type)這個函數(shù)后面如果不跟第2個參數(shù)來表示進制的話,默認是10進制。
比如說parseInt("010",10)就是10進制的結(jié)果:10,
parseInt("010",2)就是2進制的結(jié)果:2,
parseInt("010",8)就是8進制的結(jié)果:8,
parseInt("010",16)就是2進制的結(jié)果:16。

下面我來說說沒有指定進制單位的時候,默認是10進制,但:如果是里面的Number是0開頭的就認為是8進制的,如果是0x開頭的就認為是16進制的。
parseInt("10")==>parseInt("010",10)===>10parseInt("010")==>parseInt("010",8)==>8parseInt("0x10")==>parseInt("010",16)==>16.

到這里很順利.
許多事情不是想的那么順利,比如說如果Number不是我們給的正常數(shù)字又怎么解釋呢。查了些資料,是這樣說的:
parseInt(Number)如果中間的Number遇到不是數(shù)字(0-9)的就中斷往下解析,就只取不是數(shù)字之前的值去運算:比如parseInt("100x"),就相當于parseInt("100")===》parseInt("100",10)==>100,又如parseInt("0100x")===>parseInt("0100")===>parseInt("100",8)===>64.
到這里我們似乎無視了一個就是16進制中的有個x,它也不是數(shù)字,是不是遇到x也無視了呢。嘗試下了發(fā)現(xiàn)在這個特殊處理了下,
比如parseInt("0x10")===>parseInt("10",16)===>16和最上面的結(jié)果相符,但卻和我剛說的,不是字符就自動不解析就應(yīng)該理解成parseInt("0")相違背。

這里就需要注意下,parseInt里面的Number是這樣的,當如果第一個不是0且不是字符就認為是10進制,一切照舊執(zhí)行,遇到字母就停下來。又當如果是第一個是0,后面那個就需要注意了,如果是x就繼續(xù)往下走,這里的x不代表數(shù)值,只能和前面的0一起組成0x代表16進制的單位,后面的才按上面我們講的遇到非數(shù)字停止解析的規(guī)則來。比如parseInt("0xt")==>parseInt("0x")==>parseInt("",16)就是NaN了。

總結(jié)下,parseInt(Number)里面的值:如果是第一位不是0就遇到字母就停止解析,并把字母前面的值作為10進制去解析,如果第一個就是字母那么值就是空,空成了NaN,
比如:parseInt("a")==>parseInt("",10)==>NaN.parseInt("10a")==>parseInt("10")==>parseInt("10",10)==>10;
如果第一位是0,且第2位不是x也和上面一樣遇到字母就停止解析,并把字母前面的值作為8進制去解析,比如:parseInt("0a")==>parseInt("0")==>parseInt("0",10)==>0.PS:這個有點特殊,因為0a被解析成了0,還不具備看做是8進制的結(jié)構(gòu),下面那個就明顯了。
parseInt("010a")==>parseInt("010")==>parseInt("10",8)==>8;如果第一位是0,且第2位是x那后面也和上面一樣遇到字母就停止解析,并把字母前面的值作為16進制去解析,比如:parseInt("0xt")==>parseInt("",16)==>NaN.parseInt("0x12t")==>parseInt("12",16)==>18.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 雅安市| 陵水| 巴林右旗| 公安县| 宁都县| 钟祥市| 革吉县| 长治市| 凤台县| 开平市| 建水县| 轮台县| 唐山市| 合水县| 安福县| 林西县| 镇江市| 行唐县| 邹城市| 新密市| 北碚区| 沭阳县| 罗源县| 和硕县| 麻栗坡县| 哈尔滨市| 郎溪县| 衡山县| 延津县| 辽阳县| 二连浩特市| 新乐市| 彭阳县| 江永县| 贺兰县| 桐庐县| 香河县| 沁源县| 贺兰县| 旬阳县| 抚宁县|