为什么空输入值等于true



如果输入等于答案,则假设此代码在输入时执行。相反,如果我有一个等于0的乘法问题,一旦我从上一个乘法问题中删除了答案(输入为空(,结果就会返回true并执行if语句。我该如何防止这种情况发生?

ngOnInit() { this.multiply(); }
f1 =  0;
f2 =  0;
answer:number = 0;
input:number = 0;

multiply():void{
this.f1 = Math.floor(Math.random() * 12);
this.f2 = Math.floor(Math.random() * 12);
this.answer = this.f1 * this.f2;
console.log(this.answer);
}
checkAnswer(event){
this.input = event.target.value;
if(this.input == this.answer){
console.log(this.input + " " + "is correct!");
this.multiply();
} else{
console.log(this.input + " " + "is incorrect" + " "  + this.answer);
}
}
}

使用===而不是==

所以你的if语句应该是

if(this.input === this.answer){

解释:

  • ==只比较value而不比较datatype
  • ===比较值和数据类型

示例:

  • '' == 0 => true(true,因为==只检查值(
  • '' === 0 => false(false,因为===同时检查值及其数据类型(

在这里,您可以了解=====之间的差异

重置输入值if,if语句为true。

event.target.value = null;

阻止用户触发输入事件以清除输入。因此,如果this.answer==0并且this.input=="0",则不必运行checkAnswer函数";

相关内容

  • 没有找到相关文章

最新更新