33

谁能解释parseInt()函数的工作原理以及Radix 参数是什么?

作为一个案例研究,我试图掌握这个代码片段:

var maxChars = parseInt( formField.attr('maxlength') ? formField.attr('maxlength') : counter.text() );

你能解释一下这段代码是如何工作的吗?为什么formField.attr('maxlength')有两次?我发现这里使用运算符非常令人困惑!

在这个例子中基数参数是如何工作的?

4

3 回答 3

47

是的radix另一个名称,即 2 表示二进制,10 表示十进制,16 表示十六进制,在Mozilla 开发者网络站点base上有更详细的解释。

在您的示例中,没有 radix 参数,因此解释器将退回到默认行为,该行为通常将数字视为十进制,除非它们以零(八进制)或0x(十六进制)开头。

于 2012-05-01T14:06:32.770 回答
4

在 ECMA 脚本 5 中,当字符串以 0 开头且未指定基数时,默认行为是十进制(与早期版本中的八进制相反)

资料来源:Mozilla 开发者网络上的 parseInt()

于 2014-06-04T19:48:04.360 回答
-1

parseInt两个参数,第二个是可选的。字符串和基数。

String是要解析的值。如果提供的值不是字符串,它会将其转换为字符串。

Radix是 2 到 36 之间的整数,表示上述字符串的基数(数学数字系统中的基数)。

在您的代码片段中,未指定 Radix,假定为默认 16。

var maxChars = parseInt( formField.attr('maxlength') ? formField.attr('maxlength') : counter.text() );

您正在定义一个名为“maxChars”的变量。此变量等于对简写 IF 语句的评估。

您正在从变量中获取属性,该变量应该是一个名为“maxLength”的选择器“formField”。该值将作为整数返回,它将回退到它的默认基数。

IF 语句检查返回值是真还是假。0,false,其他会导致变量“maxChars”的值被设置为“counters”组合文本。如果为真,它将导致变量被设置为选择器“formField”属性,称为“maxLength”。

formField.attr('maxlength')

是否存在两次,因为一个用于 IF 语句评估,另一个用作 IF 语句中的条件结果为 TRUE 的值。

于 2015-08-02T18:09:30.717 回答