Ответ 1
Канонический способ разбора десятичного числа int parseInt(str, 10)
.
Что касается других решений:
-
parseInt("-1")
: используйте его, только если вам нравится жить опасно (некоторые браузеры предполагают, что"009"
является десятичным, а не все) -
Math.floor("-1")
: это может быть слово, а не int, но это не так, если вы хотите убедиться, что это целое число -
Number("-1")
: возможно, вам нужен объект, чтобы вы могли вызывать методы без рекламы, и вы хотите убедиться, что нет мусора (Number('3 flowers')
== >NaN
) -
"-1"|0
,~~"-1"
и другие комбинации неявного преобразования и двоичной операции: вам нравится код в гольф и не хотите, чтобы ваш код был легко поддержан (для тех, кто задается вопросом: двоичная операция принимает целую часть числа). Как отметил Блендер в комментарии, эти решения не подходят для больших (положительных или отрицательных) номеров.
Вам не следует использовать другое решение, кроме parseInt(str,10)
, если вам не нужно, чтобы строка содержала только что int. Это самое быстрое решение и, что более важно, наиболее читаемое. Если JS-движок выполняет некоторую оптимизацию, нет никаких оснований для того, чтобы другие решения стали быстрее, чем этот.