You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
如果 S 包含的不是 R 进制的码元,定义 Z 为 S 的子串,该子串由第一个此类码元 之前 的所有码元组成(例如 parseInt('7+6', 10),+6 会被忽略);否则,定义 Z 为 S
如果 Z 为空,返回 NaN
定义 mathInt 为由 Z 的 R 进制表示的 数学整数 值,将字母 A-Z 和 a-z 用于表示数值从10到35的数字。(但是,如果 R 是 10 且 Z 包含超过 20 个有效数,第20个数后面的每个有效数可能会被0替换,由具体实现决定;如果 R 不是 2,4,8,10,16,32,mathInt 可能是由 Z 的 R 进制表示依赖于具体实现的近似的 数学整数 值)
全局对象:函数属性(parseFloat/parseInt)
parseFloat ( string )
parseFloat
函数产生一个Number
值,该值由将字符串参数的内容解释为十进制数来决定。parseFloat
函数就是 %parseFloat% 固有对象。String
类型,然后判断是否满足 StrDecimalLiteral 的语法!parseFloat('')
结果为NaN
Number
类型值parseInt ( string, radix )
parseInt
函数产生一个 整数 值,该整数值由对string
参数内容根据指定的进制基数radix
的解释来决定。字符串中的前导空格会被忽略。radix
是 undefined 或 0,除非以 0x 或 0X 开始(这种情况radix
被认为是 16),否则radix
被推断为 10。radix
是 16,可能会以 0x 或 0X 开始。parseInt
函数就是 %parseInt% 固有对象。parseInt('7+6', 10)
,+6
会被忽略);否则,定义 Z 为 SNumber
类型值经典面试题
[1, 2, 3].map(parseInt) 输出什么以及为什么?
首先
parseInt
是函数,map
中接受的参数也是函数,所以上述代码可以转为:这样一看,实际是对以下代码的求值:
根据上面
parseInt
算法规定,第二个参数radix
如果等于 0,那么会采用十进制;如果不等于 0,则要看它是不是在 2 ~ 36 范围内。所以:parseInt(1, 0)
实际上是parseInt(1, 10)
parseInt(2, 1)
,1 不在 2 ~ 36 范围内,返回NaN
parseInt(3, 2)
,2 在 2 ~ 36 范围内,所以这里是二进制形式,但是二进制中只有 0 和 1,没有 3,这里 3 不符合二进制规范,所以返回NaN
本篇结束
The text was updated successfully, but these errors were encountered: