谁能解释一下parseInt函数()功能如何运作以及基数参数是什么?
作为一个案例研究,我想获得与此代码段交手:
var maxChars = parseInt( formField.attr('maxlength') ? formField.attr('maxlength') : counter.text() );
你也可以解释这个代码是如何工作的? 为什么有formField.attr(“最大长度”)两次? 我发现使用运营商的位置相当不错的混乱!
如何基数参数在这个例子中工作?
的radix
为另一名称base
,即2二进制,10为小数,16表示十六进制,在上更详细地解释的Mozilla开发人员网络站点 。
在您的例子有没有基数的参数 ,所以解释将回落到默认行为,通常把数字为十进制,除非他们开始以零(八进制)或0x
(十六进制)。
在ECMA脚本5时字符串以0开始,并没有小数点指定的默认行为是小数(而不是在早期版本中,它是八进制)
来源: parseInt函数()在Mozilla开发者网络
parseInt函数有两个参数 ,第二个是可选的。 字符串和基数。
字符串是解析值。 如果提供的值不是一个字符串,将其转换为字符串。
基数 是表示上述字符串的基数 (数学标记系统中的碱)2和36之间的整数。
在您的代码段基数不指定,被假定为默认值16。
var maxChars = parseInt( formField.attr('maxlength') ? formField.attr('maxlength') : counter.text() );
要定义一个名为“maxChars属性”变量。 这个变量是等于短手IF语句的评价。
您都可以从它预计将选择“formField”被称为“最大长度”变量属性。 该值将返回一个整数,它会回退到它的默认基数。
if语句检查返回的值是否是真还是假。 0,假,ectcetera将导致变量“maxChars属性”的值被设置为“计数器”结合的文本。 如果为真,将导致变量被设置为所谓的“最大长度”选择“formField”属性。
formField.attr('maxlength')
有两次,因为一个是在IF语句评估中使用,而另一个被用作值,如果在IF语句结果的条件为TRUE。