'+' или parseInt () - который эффективен для преобразования строки в целое число в javascript

В кодах JavaScript я видел людей, использующих символ «+» для преобразования строки в целое число,

var i = +"2";

другой способ - просто использовать метод parseInt() следующим образом:

var i = parseInt("2");

Я хочу знать, какой из них эффективен?

К сожалению, я должен добавить, что я имею дело только с целыми числами, и данные огромны, поэтому даже небольшая разница в производительности была бы хороша для меня.

0
nl ja de
Просто сделал быстрый тест времени и обнаружил - в firefox (последний) «+» запускается почти в два раза быстрее, чем parseInt, но в хроме (последний) и IE9 «+» немного медленнее, чем parseInt.
добавлено автор Moazzam Khan, источник
Сначала это зависит от того, какой браузер вы используете. Кроме того, почему бы вам не просто написать тест времени.
добавлено автор Richard Schneider, источник
Используйте сайт JSPerf , если вам действительно все равно.
добавлено автор Amadan, источник
Не существует окончательного ответа, поэтому лучше всего читайте. Также + "1.2" не возвращает целое число.
добавлено автор Ja͢ck, источник
Стилистически, parseInt более «эффективен», так как он, скорее всего, сэкономит вам больше времени на отладке
добавлено автор Snakes and Coffee, источник

2 ответы

Короче говоря, не беспокойтесь об этом, используйте то, что более удобно для вас и для реального случая; Подобная микро-оптимизация бесполезна. Id 'просто помните, что вам может потребоваться передать параметр radix в parseInt , если ваш номер (или выглядит) восьмеричным или каким-либо другим форматом.

3
добавлено
На самом деле, только один вариант действительно преобразуется в целое число :)
добавлено автор Ja͢ck, источник

Это зависит от браузера.

я создал неприятный маленький тестовый файл для некоторых возможностей преобразования строк в ряд, которые я знаю.

Ive также добавил возможности конвертировать в числа с плавающей запятой, так как в Javascript Numbers есть числа, независимо от того, имеют ли они с плавающей запятой или нет.

Проверьте это. Исправления и предложения оценены!

Как говорили некоторые другие люди в комментариях ниже вопроса: я также думаю, что лучше не думать об этом, бу сосредоточиться на удобочитаемости.

2
добавлено
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском