JavaScript-为什么我的parseInt返回NaN?

JavaScript-为什么我的parseInt返回NaN?,javascript,parseint,Javascript,Parseint,在关于bucketId的代码中,返回“17”。 那么为什么在解析int-bucketId时会得到NaN呢?bucketId可能不是以整数开头的 如果第一个字符无法转换为数字,则parseInt()返回NaN bucketId可能不是以整数开头的 如果第一个字符无法转换为数字,则parseInt()返回NaN 如果我理解正确,上述代码相当于: var bucketId = $.cookie('bucketId'); console.log(bucketId); var bucketIdNumbe

在关于bucketId的代码中,返回“17”。
那么为什么在解析int-bucketId时会得到NaN呢?

bucketId
可能不是以整数开头的

如果第一个字符无法转换为数字,则parseInt()返回NaN


bucketId
可能不是以整数开头的

如果第一个字符无法转换为数字,则parseInt()返回NaN


如果我理解正确,上述代码相当于:

var bucketId = $.cookie('bucketId');
console.log(bucketId);

var bucketIdNumber = parseInt(bucketId, 10);
console.log("bucketIdNumber " + bucketIdNumber);

在这种情况下,bucketIdNumber确实返回NaN。您需要进一步解析此cookie,并删除任何内部引号。

如果我理解正确,上述代码相当于:

var bucketId = $.cookie('bucketId');
console.log(bucketId);

var bucketIdNumber = parseInt(bucketId, 10);
console.log("bucketIdNumber " + bucketIdNumber);


在这种情况下,bucketIdNumber确实返回NaN。您需要进一步分析此cookie,并删除任何内部引号。

是否确定
bucketId
“17”
parseInt
如果无法将字符串解析为数字,则返回
NaN
。例如,
parseInt('asdf10')
将返回
NaN
,因为bucketId实际上不是17:D,这就是当您硬编码
var bucketId='17'时它工作的原因是的,根据console.log()发布
window.btoa(bucketId)的输出这将对其进行base64编码,为我们提供字符串的二进制安全表示,以便我们可以检查它。但是,您也可以自己检查字符串长度,这样您就会发现问题。您确定
bucketId
“17”
parseInt
如果无法将字符串解析为数字,则返回
NaN
。例如,
parseInt('asdf10')
将返回
NaN
,因为bucketId实际上不是17:D,这就是当您硬编码
var bucketId='17'时它工作的原因是的,根据console.log()发布
window.btoa(bucketId)的输出这将对其进行base64编码,为我们提供字符串的二进制安全表示,以便我们可以检查它。但是,你也可以自己做一些事情,比如检查字符串长度,你会发现你的问题。这可能是一个Chrome特有的东西,但是
parseInt('12',10)
对我有效。它可能是Chrome特有的东西,但是
parseInt('12',10)
对我有效。哦,是的,引号实际上是记录的,不是为了格式化听起来可能是这样的吧?删除内部引号的最佳方法是什么?不首先存储它们是最好的方法。另一种方法是每次使用
parseInt(bucketId.replace(/^“|“$/g,”),10)删除它们。
@Mark,正如@Esailija所提到的,如果可以避免存储它们,那将是理想的。如果没有,那么可以使用RegExp删除它们。类似于此处的操作:
http://stackoverflow.com/questions/1015844/how-to-remove-all-characters-from-a-string
Esailija-就是这样,在我将其放入cookie之前,我先解析了int()。哦,是的,引号实际上是记录的内容,而不是用于格式化听起来可能是这样的?删除内部引号的最佳方法是什么?不首先存储它们是最好的方法。另一种方法是每次使用
parseInt(bucketId.replace(/^“|“$/g,”),10)删除它们。
@Mark,正如@Esailija所提到的,如果可以避免存储它们,那将是理想的。如果没有,那么可以使用RegExp删除它们。类似于此处的操作:
http://stackoverflow.com/questions/1015844/how-to-remove-all-characters-from-a-string
Esailija-就是这样,我在将其放入cookie之前解析了int()。