parseInt 函式正解

2021-06-22 08:49:15 字數 1181 閱讀 1792

阿里巴巴的前端面試題目中有一道題是這樣的,是關於parseint()的用法的,題目如下

var b = parseint("01");

alert("b="+b);

var c = parseint("09/08/2009");

alert("c="+c);

解答這道題目,我們必須要知道parseint()是怎麼工作的?正確的答案應該是  b=1     c=0

a、parseint()將乙個字串轉換成整數,它將字串中的字元逐一解析,碰到不能解析的(不是乙個數了)就返回。盡可能多的解析(貪婪匹配)。

b、如果 string以 0 開頭,那麼 parseint() 把其後的字元解析為八進位制或十六進製制的數字。如果 string以 1 ~ 9 的數字開頭,parseint() 將把它解析為十進位制的整數。

舉例:比如parseint("ab123");

解析第乙個字元a,看到不是乙個數字,直接返回nan,not a numble   不是乙個數

舉例:比如parseint("123");

解析到1是個數字,這個時候沒有返回,由於要盡可能多的解析(貪婪匹配),所以再看2,也是個數字,再看3,還是個數字,沒了,,所以返回123;

了解了這些知識之後,我們來分析這道題目

1

varb = parseint("01");

一看,0,parseint()預設要返回乙個8進製數,再解析1,沒了,這是js會解析到01,一看,這不是個8進製數中的1嗎,所以返回1。

2

alert("b="+b);

輸出b=1,這裡的 + 是連字元

3

4

varc = parseint("09/08/2009");

alert("c="+c);

第3句,看到0之後,parseint()預設要返回乙個8進製數,再看後面是9,顯然這不是乙個8進製數,所以就返回乙個0了。

所以c=0

ParseInt函式引數設定

我們經常用parseint函式轉換字串為int數值,parseint函式有兩個引數可以設定,其中第二個引數可以預設。parseint 字串 使用的進製 var num1 parseint 10 2 2 var num1 parseint 10 8 8 var num1 parseint 10 10 ...

js中parseInt函式的解析

首先還是從很熱門的例項parseint 09 0說起。parseint number,type 這個函式後面如果不跟第2個引數來表示進製的話,預設是10進製。比如說parseint 010 10 就是10進製的結果 10,parseint 010 2 就是2進製的結果 2,parseint 010 ...

JS深入理解 探索parseInt函式

看到這樣一道題目 1 2 3 map parseint 執行結果是什麼?為什麼?執行結果是 1,nan,nan 我們將題目的 轉換一下 1 2 3 map item,index 相當於 parseint 1 0 1 why?parseint 2 1 nan why?parseint 3 2 nan ...