javascript中字符串到数字的转换

javascript中字符串到数字的转换,javascript,Javascript,我有一个函数,它有以下几行: payementReceived=data.toJSON().total; paymentTotal=$("#paymentTotal").html(); console.log(typeof(parseInt(paymentTotal))); console.log(typeof(parseInt(paymentReceived))); console.log(parseInt(paymentTotal)-parseInt(p

我有一个函数,它有以下几行:

payementReceived=data.toJSON().total;
paymentTotal=$("#paymentTotal").html();

console.log(typeof(parseInt(paymentTotal)));                  
console.log(typeof(parseInt(paymentReceived)));
console.log(parseInt(paymentTotal)-parseInt(paymentReceived));
我在控制台中得到以下信息

number
number
NaN

我不明白如果两者都是数字,那么为什么它不能给出正确的减法结果。

值是
number
,因为它们的内容是一个数字,但这并不意味着该数字是有效的

typeof NaN === 'number'

如果从减法中得到一个
NaN
,则一个或两个输入值都是无效数字。

问题在于,如果您确定结果是一个可以始终使用的数字,则使用“paymentReceived”的未定义变量

console.log(parseInt(paymentTotal)-parseInt(payementReceived));
试试下面的代码

控制台日志(编号(paymentTotal)-编号(PaymentReceived))

只是一个有趣的想法:

if (typeof n === "number" && n+1 !== n) {
    // this is a valid number
}

无效+1仍将无效,因此它可以检查无效的数字。

newnumber()
,而不仅仅是
Number()
。或者更确切地说-
parseInt(xxx,10)
typeof(NaN)==“number”
因为
NaN
值也是
number
类型?请注意,当使用
parseInt
时,应始终将
10
作为第二个参数(否则以0开头的数字将被读取为基数8!)是因为打字错误吗??“paymentReceived”而不是“paymentReceived”