使用 parseInt() 函数和带有三元运算符的基数参数



作为一个案例研究,我试图掌握这个使用 parseInt() 函数的代码片段,并有几个问题:

var maxChars = parseInt( formField.attr('maxlength') ? formField.attr('maxlength') : counter.text() );
  • 为什么formField.attr('maxlength')两次?

  • 在此示例中,基数参数如何工作?

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

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

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

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

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

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

基数

介于 2 和 36 之间的整数,表示上述字符串的基数(数学数字系统中的基数(。

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

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

您正在定义一个名为"maxChars"的变量。此变量等于对简写 IF 语句的求值。

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

IF 语句检查返回值是真还是假。 0, 假, ectcetera 将导致变量 "maxChars" 的值设置为"计数器"组合文本。如果为 true,则会导致变量被设置为名为"maxLength"的选择器"formField"属性。

formField.attr('maxlength')存在两次,因为一个用于 IF 语句计算,另一个用作值,如果 IF 语句中的条件结果为 TRUE。

相关内容

  • 没有找到相关文章

最新更新