🔥 Каверзный вопрос с собеса
Метод
🔍 Что происходит на самом деле:
➕ radix = 0 означает автоопределение системы счисления:
• если строка начинается с '0x' или '0X' → основание = 16
• во всех остальных случаях → используется основание = 10
Поэтому '1' интерпретируется как десятичная.
➕ системы счисления с основанием 1 не существует => Nan
➕ '11' в двоичной системе — это 3₁₀ => 3
❇️ parseInt('11', 2) парсит всю строку как двоичную, потому что она корректна полностью.
Распространённый миф — будто бы берётся только первый символ; это неверно.
✅ Как исправить:
Или проще:
🐸 Библиотека фронтендера
#career_merge #middle
Метод
.map() передаёт в колбэк три аргумента: текущий элемент, индекс и исходный массив. Функция parseInt принимает: строку и radix — основание системы счисления. Поэтому индекс массива попадает в radix.
parseInt('1', 0)
• если строка начинается с '0x' или '0X' → основание = 16
• во всех остальных случаях → используется основание = 10
Поэтому '1' интерпретируется как десятичная.
parseInt('7', 1)
parseInt('11', 2)
Распространённый миф — будто бы берётся только первый символ; это неверно.
['1', '7', '11'].map(str => parseInt(str))
Или проще:
['1', '7', '11'].map(Number)
#career_merge #middle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🤩3❤1