Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不知什么原因_Javascript_Nan - Fatal编程技术网

Javascript 不知什么原因

Javascript 不知什么原因,javascript,nan,Javascript,Nan,在编写一个小项目时,我在打印到控制台时遇到了一个NaN问题。我认为这可以通过使用JavaScript代码轻松解决: newInt = parseInt(oldInt); 事实并非如此。阅读NaN之后,可以通过多种方式创建它,例如向对象添加数组,或者更常见的是,当您尝试从字符串中删除数字时。我之所以说take-away,是因为向字符串中添加一个数字意味着将发生串联 我的代码是可用的。这是一个网站,但我用出现和消失的div来表示它不是。要获取错误,请按“开始冒险”。可以使用默认值 在控制台中,您可

在编写一个小项目时,我在打印到控制台时遇到了一个NaN问题。我认为这可以通过使用JavaScript代码轻松解决:

newInt = parseInt(oldInt);
事实并非如此。阅读NaN之后,可以通过多种方式创建它,例如向对象添加数组,或者更常见的是,当您尝试从字符串中删除数字时。我之所以说take-away,是因为向字符串中添加一个数字意味着将发生串联

我的代码是可用的。这是一个网站,但我用出现和消失的div来表示它不是。要获取错误,请按“开始冒险”。可以使用默认值

在控制台中,您可以按F12键访问该控制台,它将打印出一组起始值。然后,它将打印一组起始值,使用以下方法方便地组合在一起:

console.Group();
console.GroupEnd();
之后,当你按下“明年!”时,它会再打印两组。函数创建的第一个

plantCrops();
由函数创建的下一个

buildWells(); 
正如您所看到的,两个currentCrop注释都是NaN,尽管通过大量使用parseInt进行了预评估。有办法解决这个问题吗?奇怪的是,尽管它应该非常简单,但它却发生了。

在JavaScript中

console.log(parseInt(''));
将产生NaN

如果你加上

console.log('cc'+ currentCrop);
console.log('a' + parseInt(acres));
plantCrops()
中,如果文本框中没有提供值,您将看到它们都是NaN

另外,对于
currentCrop
,我认为这是把事情搞砸的原因:

currentCrop = document.getElementById("cropstored");
即使顶部有默认值

解决方案是在使用
==
运算符调用
parseInt()
之前进行简单的字符串相等性测试:

if(someString === '') 
    defaultValue = ...;
else
    parseInt();

您的代码有许多问题,但与NaN相关的问题如下:

currentCrop = document.getElementById("cropstored");
currentCrop = parseInt(currentCrop);
这段代码试图从对象中解析int,但不起作用

首先获取值:

currentCrop = document.getElementById("cropstored").value;
currentCrop = parseInt(currentCrop);
但是确保元素不包含空字符串,因为
parseInt
为其返回
NaN

parseInt('') -> NaN

实际上,
NaN
表示无法将值解析为整数,因此可以将其用作无效数据的指示。

我意识到这一点,但我已经使用了很多parseInt,为什么它不是一个数字?如果我理解正确,从输入中获取值时,它始终是字符串。parseInt不应该修复它吗?parseInt可能不会修复,如果测试时输入的格式不是预期的格式,我确实输入了一个数字。我看不出为什么它是一根绳子。我已确保不包含空格或其他字符。您确定请求的所有ID(例如
document.getElementById(“cropstored”)
都正确吗?