Javascript 为什么我在使用parseINt或undefined时得到NaN?

Javascript 为什么我在使用parseINt或undefined时得到NaN?,javascript,Javascript,尽管使用了parseInt或.value,但我还是得到了NaN,我不明白这是为什么。我也尝试过更改代码,但是我得到了未定义的。 作为一个初学者,我不明白我做错了什么,尽管它很简单。有什么建议吗 const btn=document.querySelector('.btn'); btn.addEventListener('click',calcWinner); 函数calcWinner(e){ const powerG=document.querySelector(“#power-g”); co

尽管使用了
parseInt
.value
,但我还是得到了
NaN
,我不明白这是为什么。我也尝试过更改代码,但是我得到了未定义的
。 作为一个初学者,我不明白我做错了什么,尽管它很简单。有什么建议吗

const btn=document.querySelector('.btn');
btn.addEventListener('click',calcWinner);
函数calcWinner(e){
const powerG=document.querySelector(“#power-g”);
const techG=document.querySelector(“#tech-g”);
const chanceG=document.querySelector(“#chance-g”);
const powerF=document.querySelector(“#power-f”);
const techF=document.querySelector('tech-f');
const chanceF=document.querySelector(“#chance-f”);
让gokuR=parseInt(powerG+techG+chanceG)
设friezeR=parseInt(powerF.value)+parseInt(techF.value)+parseInt(chanceF.value);
log(parseInt(gokuR.value));
}

战斗机会
权力
技巧
机会
战斗机会
权力
技巧
机会
获胜者:

没有HTML,很难给出准确的答案。但是parseInt()表示字符串。您试图在元素而不是字符串上使用它。您需要获取HTML元素的值,而不是元素本身

而不是:

const powerG   = document.querySelector('#power-g');
您需要执行以下操作:

const powerG   = document.querySelector('#power-g').value;

参考:

首先,获取值而不是元素,例如:

const powerG   = document.querySelector('#power-g').value;
然后使用
字符串
数字转换为实际数字,即可计算结果

堆栈片段

const btn=document.querySelector('.btn');
btn.addEventListener('click',calcWinner);
函数calcWinner(e){
const powerG=document.querySelector(“#power-g”).value;
const techG=document.querySelector(“#tech-g”).value;
const chanceG=document.querySelector(“#chance-g”).value;
const powerF=document.querySelector(“#power-f”).value;
const techF=document.querySelector(“#tech-f”).value;
const chanceF=document.querySelector('#chance-f').value;
设gokuR=Number(powerG)+Number(techG)+Number(chanceG);
设friezeR=parseInt(powerF)+parseInt(techF)+parseInt(chanceF);
控制台日志(gokuR);
控制台日志(friezeR);
}

战斗机会
权力
技巧
机会
战斗机会
权力
技巧
机会
获胜者:

也提供HTML片段,因为我们没有HTML,所以我们不能做太多
friezeR
工作,对吗
gokuR
没有,因为您没有使用
。value
没有,它没有,我仍在获取。将信息提交回服务器时使用了
表单
标记,因此在您的情况下使用有点不正确。另外,如果您还没有看到和@TodorIvanov what arrow函数,请参见?您需要传递parseInt两件事:要解析的字符串和基数(通常为10)
parseInt(“3”,10)==3
谢谢这有帮助,但是double+是怎么叫的?@TodorIvanov没有真正的double
+
,额外的
+
在变量前面加前缀时做什么,它把它转换成一个数字,就像
parseInt
number()
那样。@TodorIvanov我用几个链接更新了我的答案(蓝色文本)到将字符串转换为数字的3种方法。