Как преобразовать строковую переменную в int в JavaScript?

Как правильно преобразовать значение переменной String в переменную типа int / numeric? ПочемуbcInt еще строка и почемуisNaN вернутьtrue?

bc=localStorage.getItem('bc');
var bcInt=parseInt(bc,10);
var bcInt2=1;
console.log("bc------------>" +bc +" isNaN:" +isNaN(bc)); //isNaN returns true
console.log("bcInt------------>" +bcInt +" isNaN:" +isNaN(bcInt)); //isNaN returns true

bcInt2// isNaN returns false
 Sami20 авг. 2012 г., 19:43
Пойнти получил очко. Я использовал функцию stringify в другом месте, а затем была двойная кавычка, и это было причиной! Спасибо за помощь всем.
 Sami20 авг. 2012 г., 17:45
08-20 18: 41: 02.880: bc ------------ & gt; "1" IsNaN: правда
 Oded20 авг. 2012 г., 17:40
Какое значение содержится в локальном хранилищеbc? Если это не число (пустое, содержит буквенные символы и т. Д.), Это то, что я ожидал бы увидеть.
 Pointy20 авг. 2012 г., 17:40
ЕслиparseInt() возвращаетNaNтогда ваша строка на самом деле не содержит числового представления значения. Если бы вы сказали нам, каково значение & quot; bc & quot; есть, тогда, возможно, кто-то может помочь, но вы не смогли этого сделать. Это значение, конечно, является ключом ко всей проблеме.
 Pointy20 авг. 2012 г., 17:47
Если вокруг символов двойные кавычки1 тогда это не сработает.

Ответы на вопрос(2)

localStorage.setItem('bc',JSON.stringify(bc)) и он добавил двойную кавычкуbc потому что в этом случае это была уже строка, и именно поэтомуparseInt не работал. Значение было""1"".

 26 апр. 2016 г., 16:12
У меня такая же проблема, как эта. до сих пор нет решения

parseInt возвращает число только в том случае, если вы передадите ему число в качестве первого символа.

Примеры:

parseInt( 'a', 10 ); // NaN
parseInt( 'a10', 10 ); // NaN
parseInt( '10a', 10 ); // 10
parseInt( '', 10 ); // NaN
parseInt( '10', 10 ); // 10

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

+'a'; // NaN
+'a10'; // NaN
+'10a'; // NaN
+''; // 0, that's tricky
+'10'; // 10

Изменить. Согласно вашему комментарию, я проверилparseInt:

parseInt( '08-20 19:41:02.880', 10 ); // 8

Вы делаете что-то еще не так.parseInt возвращает все, пока это не число. Если первый номер не является числом (или не находит никакого числа), он возвращаетNaN.

 20 авг. 2012 г., 17:52
+1 для одинарного+ Оператор.

Ваш ответ на вопрос