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

может ли кто-нибудь объяснить, как parseInt() функции работает и какого Параметр Radix - это?

в качестве примера я пытаюсь разобраться с этим фрагментом кода:

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

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

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

3 ответов


на radix - Это другое название base, т. е. 2 для двоичного, 10 для десятичного, 16 для шестнадцатеричного, объяснено более подробно на сайт Mozilla Developer Network.

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

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

источник: parseInt () в сети разработчиков Mozilla


parseInt принимает два параметра, второй не является обязательным. Струна и Радикс.

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

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

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

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

вы определяете переменную под названием "maxChars". Эта переменная равна оценке оператора short hand IF.

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

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

formField.attr('maxlength')

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