Подтвердить что ты не робот

Использование Javascript parseInt() и параметра Radix

Может ли кто-нибудь объяснить, как работают функции parseInt() и что такое Radix Parameter?

Как пример, я пытаюсь понять этот фрагмент кода:

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

Можете ли вы также объяснить, как работает этот код? Почему formField.attr('maxlength') там дважды? Я считаю, что использование операторов здесь довольно запутанно!

Как работает параметр Radix в этом примере?

4b9b3361

Ответ 1

radix - это другое имя для base, то есть 2 для двоичного кода, 10 для десятичной, 16 для шестнадцатеричных, более подробно описано в Mozilla Сайт разработчика.

В вашем примере отсутствует параметр radix, поэтому интерпретатор вернется к поведению по умолчанию, который обычно обрабатывает числа как десятичные, если только они не начинаются с нуля (восьмеричный) или 0x (шестнадцатеричный).

Ответ 2

В ECMA Script 5, когда строка начинается с 0 и не задано значение radix, поведение по умолчанию десятичное (в отличие от более ранних версий, в которых оно было восьмеричным)

Источник: parseInt() в Mozilla Developer Network

Ответ 3

parseInt принимает два параметра, второй - необязательный. String и Radix.

Строка - это значение для синтаксического анализа. Если предоставленное значение не является строкой, оно преобразует его в строку.

Radix представляет собой целое число от 2 до 36, которое представляет собой основание (основание в математических системах счисления) вышеупомянутой строки.

В вашем фрагменте кода Radix не указан и предполагается, что он по умолчанию 16.

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

Вы определяете переменную, называемую "maxChars". Эта переменная равна оценке короткого оператора IF.

Вы получаете атрибут от переменной, которая, как ожидается, будет селектором "formField", называемым "maxLength". Значение будет возвращено как целое число, оно будет отбрасываться по умолчанию по умолчанию.

Оператор IF проверяет, является ли возвращаемое значение истинным или ложным. 0, false, ectcetera приведет к тому, что значение переменной maxChars будет установлено в комбинированный текст "счетчики". Если true, это приведет к тому, что переменная будет задана как атрибут "formField" селектора, называемый "maxLength".

formField.attr('maxlength')

Есть ли два раза, потому что один используется в оценке оператора IF, а другой используется как значение, если условие в выражении IF выглядит как TRUE.