Использование 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.
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.