gpt4 book ai didi

javascript - 获取数字的 CastError NaN

转载 作者:行者123 更新时间:2023-11-30 05:30:16 27 4
gpt4 key购买 nike

我收到这个错误

{ [CastError: Cast to Number failed for value "NaN" at path "area"]
message: 'Cast to Number failed for value "NaN" at path "area"',
name: 'CastError',
kind: 'Number',
value: NaN,
path: 'area' } } }

对于这段代码

MySchema.methods = {
updateArea: function (oldArea, newArea) {
var self = this;
self.area = self.area - oldArea + newArea;
return self.save(function (err) {
if (err) {
console.log(err);
return err;
}
});
}
};

但是,当我记录 typeof self.area 时,它会给我编号。我正在测试并意识到通过将其转换为数字,它有时会起作用。例如,添加这个有效并且没有错误:

var test = Number(self.area);
self.area = test;

看起来像

MySchema.methods = {
updateArea: function (oldArea, newArea) {
var self = this;
self.area = self.area - oldArea + newArea;
var test = Number(self.area);
self.area = test;
return self.save(function (err) {
if (err) {
console.log(err);
return err;
}
});
}
};

然而,即使只是简单地将它转换为一个数字也会产生错误,使用像这样的行

self.area = Number(self.area - oldArea + newArea);

整体看起来像

MySchema.methods = {
updateArea: function (oldArea, newArea) {
var self = this;
self.area = Number(self.area - oldArea + newArea);
return self.save(function (err) {
if (err) {
console.log(err);
return err;
}
});
}
};

还是报错。

有人知道怎么回事吗?

最佳答案

oldAreanewArea 中的一个不能是数字。

如果您将数字添加到类似undefined 的内容,结果是NaN .

var n = 5;
n = n + undefined;
// n is now NaN

有趣的是,typeof NaN'number' 这可能会造成混淆,因为它的全部目的是表明它不是一个有效数字。 :-)

关于javascript - 获取数字的 CastError NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30966164/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com