Javascript 为什么这个逻辑运算符不起作用?

Javascript 为什么这个逻辑运算符不起作用?,javascript,logical-operators,Javascript,Logical Operators,我在使用代码 setInterval(function() { if (document.querySelector("#shrimpCook01").style.top > "400px") { alert("789") } }, 200); 检查shrimpcook01的位置,但即使div的最大值小于400px,我也会收到一条警报消息。这将对字符串进行字典比较。 使用parseInt将值转换为数字,并将其与4

我在使用代码

setInterval(function() {
  if (document.querySelector("#shrimpCook01").style.top > "400px") {
    alert("789")
  }
}, 200);

检查shrimpcook01的位置,但即使div的最大值小于400px,我也会收到一条警报消息。

这将对字符串进行字典比较。
使用parseInt将值转换为数字,并将其与400数字而不是“400px”字符串进行比较。

您可以轻松地转换字符串值

setInterval(函数(){
const height=document.querySelector(“#shrimpCook01”).style.top.split('px')[0];
如果(数量(高度)>400){
警报(“789”)
}
}, 200);

你不能用字符串做数学运算。“400px”不是一个数字。你知道为什么我在比较字符串和整数(repl.it/repls/AwkwardSpiritedDeprecatedsoftware#index.php)时会收到警报消息吗?还有,为什么在用javascript更改css值时,要写的字符串等于strings,stackoverflow.com/questions/2214387/…,但在本例中不是这样?但屏幕截图显示是275px。在这种情况下,比较应该有效。