1/0
的结果是Infinity
.
parseInt
将其第一个参数视为字符串,这意味着首先调用Infinity.toString()
,生成字符串"Infinity"
.因此,它的工作原理与你要求它将以19为基数的"Infinity"
转换成十进制是一样的.
以下是以19为基数的数字及其十进制值:
Base 19 Base 10 (decimal)
---------------------------
0 0
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
a 10
b 11
c 12
d 13
e 14
f 15
g 16
h 17
i 18
接下来发生的事情是,parseInt
扫描输入"Infinity"
以找到它的哪一部分可以被解析,并在接受第一个I
后停止(因为n
在基数19中不是有效数字).
因此,它的行为就好像你调用了parseInt("I", 19)
,它通过上表转换为十进制18.