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

首頁 > 編程 > JavaScript > 正文

js parseInt的陷阱分析小結

2019-11-20 23:54:55
字體:
來源:轉載
供稿:網友
復制代碼 代碼如下:

var a = parseInt("09"), b = Number("09");

很多人會認為a和b的值都是數字9,但實際上不是。

parseInt的主要作用是把字符串轉換為整數,或者把小數轉換為整數。一般情況下,我們只用到它的第一個參數。但實際上,它有兩個參數:
parseInt(string, radix)

parseInt會根據radix指定的進制進行轉換,比如:
復制代碼 代碼如下:

alert(parseInt("10", 2)); // outputs '2'

在沒有指定radix或者radix為0的情況下,parseInt會按十進制進行轉換。然而,這在某些情況下有點特殊:

* 如果string的值以“0x”開頭,parseInt會按十六進制進行轉換;
* 如果string的值以“0”開頭,parseInt會按八進制進行轉換。

說回開頭的代碼,由于"09"是以“0”開頭,所以parseInt會按八進制進行轉換,但是“9”不是合法的八進制值(八進制只有0-7八個數字),所以轉換結果是0。

要避免這個陷進,可以強制指定radix:
復制代碼 代碼如下:

alert(parseInt("09", 10)); // outputs '9'

其它網友的補充:
看代碼:
復制代碼 代碼如下:

alert(parseInt(0.000001));
alert(parseInt(0.0000001));

第一條語句輸出 0, 第二條語句輸出 1, 主站蜘蛛池模板: 大方县| 宜兴市| 阳城县| 鹤峰县| 开远市| 安泽县| 肃北| 昌乐县| 长海县| 贵港市| 太仆寺旗| 扶绥县| 区。| 沙坪坝区| 延津县| 雷州市| 大渡口区| 曲靖市| 宜都市| 吉安市| 道孚县| 昂仁县| 阿合奇县| 嵩明县| 新沂市| 亚东县| 芮城县| 乐陵市| 敦煌市| 五常市| 襄樊市| 武夷山市| 曲水县| 化德县| 西青区| 贵南县| 徐州市| 中方县| 金塔县| 洛扎县| 山阳县|