Що насправді означає радікс? Навіщо нам це потрібно?
parseInt(10, radixValue);
Що насправді означає радікс? Навіщо нам це потрібно?
parseInt(10, radixValue);
Відповіді:
Можливо, вам не завжди хочеться проаналізувати ціле число на базове число 10, тому введення radix дозволяє вказати інші системи числення.
Радікс - це кількість значень для однієї цифри. Шістнадцяткове число буде 16. Восьмеричне буде 8, двійкове буде 2, і так далі ...
У parseInt()
функції є кілька речей, які ви можете зробити, щоб натякнути на радікс, не подаючи його. Вони також можуть працювати проти вас, якщо користувач вводить рядок, який відповідає одному з правил, але прямо не означає. Наприклад:
// Numbers with a leading 0 used a radix of 8 (octal) before ECMAScript 5.
// These days, browsers will treat '0101' as decimal.
var result = parseInt('0101');
// Numbers that start with 0x use a radix of 16 (hexidecimal)
var result = parseInt('0x0101');
// Numbers starting with anything else assumes a radix of 10
var result = parseInt('101');
// Or you can specify the radix, in this case 2 (binary)
var result = parseInt('0101', 2);
parseInt('0101')
тепер повертається 101
. Однак різні браузери можуть мати різну поведінку. Завжди включайте радікс для надійних результатів.
parseInt(x, 0)
з якихось причин, які зараз не пам’ятаю .. чи це дорівнює, parseInt(x, 10)
мені зараз цікаво ...
Оскільки, якщо у вас є рядок, наприклад, 0700
і ви хочете, щоб результат був цілим числом, 700
вам потрібно повідомити, parseInt()
що це десяткове число, а не вісімкове.
console.log(parseInt("0700"));
// 448
// I really wanted decimal (base 10)
console.log(parseInt("0700", 10));
// 700
// What is this? Binary, Decimal, Octal?
console.log(parseInt("0110"));
// 72
// as binary
console.log(parseInt("0110", 2));
// 6
0o
замість0
Radix - основа системи числення. Існує нескінченна кількість числових систем, але ті, з якими знайомі більшість людей, - це база 10 (десяткова) і база 2 (двійкова).
Числові значення можна інтерпретувати по-різному в різних базах. Наприклад, число 10 у двійковому вигляді може бути представлене як 2 у десятковому.
У випадку parseInt()
, радікс дозволяє вказати основу, яка буде використовуватися. За замовчуванням використовується радіус 10.
Однак радіус слід завжди вказувати, навіть коли використовується база 10. Розглянемо випадок
parseInt("010")
// Повертає 8
На перший погляд, ви можете очікувати, що оператор поверне 10. Явне використання radix допоможе уникнути плутанини:
parseInt("010", 10)
// Повернення: 10
Радікс - це базовий номер системи числення: http://en.wikipedia.org/wiki/Radix
Зазвичай вам потрібно вказати радіус, лише якщо ви хочете, щоб він відрізнявся від 10. Більш конкретно (з http://www.w3schools.com/jsref/jsref_parseInt.asp ):
Якщо параметр radix опущений, JavaScript передбачає таке:
Якщо рядок починається з "0x", радіус дорівнює 16 (шістнадцятковий) Якщо рядок починається з "0", радіус дорівнює 8 (восьмеричному). Ця функція застаріла Якщо рядок починається з будь-якого іншого значення, радіус дорівнює 10 (десятковий)
Просто додайте додаткову інформацію, яка чітко відповідає на питання:
Якщо radix невизначений або 0 (або відсутній), JavaScript передбачає таке:
Джерело: MDN parseInt ()
Це лише моя думка, але думка, що "нам потрібно використовувати radix" швидко застаріває. Проблема справді була актуальною деякий час тому, тому що люди за межами ІТ-світу зазвичай не використовують цифрові позначення, крім десяткових, і досить часто надають десяткові числа, заповнені нулем, як "010". Але оскільки вісімкові числа ECMAScript 6 у JS мають префікс "0o", а не просто "0", як це було в ECMAScript 5 і 3. Отже, якщо ви не націлюєтесь на сімейство IE (це не рідкісна ситуація зараз), ви можете пропустити radix безпечно.
Параметр radix використовується, щоб вказати, яку систему числення використовувати, наприклад, радіус 16 (шістнадцятковий) вказує на те, що число в рядку має бути проаналізовано із шістнадцяткового числа до десяткового числа.
Якщо параметр radix опущений, JavaScript передбачає таке:
Якщо рядок починається з "0x", радіус дорівнює 16 (шістнадцятковий)
Якщо рядок починається з "0", радіус дорівнює 8 (вісімковій). Ця функція застаріла
Якщо рядок починається з будь-якого іншого значення, радіус дорівнює 10 (десятковий)
Джерело W3Schools
Що таке radix у paseInt ()?
parseInt()
Функція аналізує рядок і повертає ціле число. Він приймає другий аргумент для radix , який визначає основу числа в рядку . Radix може бути цілим числом між 2
і 36
.
Виклик функції виглядає так (Синтаксис):
parseInt(string, radix);
Кілька прикладів для уточнення поняття радікс
Приклад 1:
var a = parseInt("11", 2);
Radix змінна говорить , що «11» знаходиться в двійковій системі, або підставою 2 . Отже, цей приклад перетворює рядок "11" у ціле число 3.
Приклад 2:
var a = parseInt("10011", 16);
Тут радікс повідомляє, parseInt()
що 10011
це шістнадцяткове число, і, отже, у цілому числу воно перетворюється на65553
В основному, коротко кажучи, аргумент radix повідомляє, parseInt()
що рядок, переданий як 1-й параметр, є певною системою (двійковою, шістнадцятковою тощо), і її потрібно перетворити на ціле число як кінцевий продукт.