Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
21.7K subscribers
2.83K photos
195 videos
44 files
5.14K links
Все самое полезное для фронтенда в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/77178ed4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
Download Telegram
🔥 Каверзный вопрос с собеса

Метод .map() передаёт в колбэк три аргумента: текущий элемент, индекс и исходный массив. Функция parseInt принимает: строку и radix — основание системы счисления. Поэтому индекс массива попадает в radix.

🔍 Что происходит на самом деле:


parseInt('1', 0)


radix = 0 означает автоопределение системы счисления:

• если строка начинается с '0x' или '0X' → основание = 16
• во всех остальных случаях → используется основание = 10

Поэтому '1' интерпретируется как десятичная.


parseInt('7', 1)


системы счисления с основанием 1 не существует => Nan


parseInt('11', 2)


'11' в двоичной системе — это 3₁₀ => 3

❇️ 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🤩31