I';我对javascript中的if语句感到困惑

I';我对javascript中的if语句感到困惑,javascript,if-statement,Javascript,If Statement,我在javascript中有这样一个条件: var a = '60'; var b = '500'; if(a < b) { console.log('true'); } else { console.log('false'); } var a='60'; var b='500'; if(a

我在javascript中有这样一个条件:

var a = '60';
var b = '500';

if(a < b) {
  console.log('true');
} else {
  console.log('false');
}
var a='60';
var b='500';
if(a
但结果是错误的,我的期望应该是正确的,但我尝试与php代码进行比较:

<?php 

  $a = '60';
  $b = '501';

  if($a < $b) {
    echo 'true';
  } else {
    echo 'false';
  }

?>


结果是真的,如果在javascript中没有其他if条件,那么如果值不为真,它将自动读取假条件?

如果您希望
a
b
表现得像数字,请不要将它们放在引号中。这使它们成为了弦

var a = 60;
var b = 500;

PHP会自动将它们转换为数字。尝试运行
echo$a-1您将获得
59
。也可以尝试
“00001”==“1”
。你会实现的!JavaScript不会进行这种检测。相反,JavaScript按照字符串的字母顺序进行比较。按字母顺序,我的意思是它比较每个字符串的第一个字符。如果它们具有相同的字符代码,则会转到每个字符串的下一个字符。如果一个字符串的字符代码比另一个字符串的字符代码高,那么它就比另一个字符串“大”——就像我们在确定“dog”或“dot”是否按字母顺序排在第一位时所做的那样。在这种情况下,JavaScript会看到
6
的字符代码为
54
5
的字符代码为
53
,它会立即得出结论,即
“60”
大于
“500”
,,您应该避免在数字中添加引号,但如果存在引号,您就可以使用 可以使用
parseInt
转换为数字

试试这个:

var a='60';
var b='500';
if(parseInt(a)}
PHP在比较两个字符串之前将它们转换为数字。如果希望在JavaScript中使用相同的格式,请使用:

if (parseInt(a, 10) < parseInt(b, 10)) {
if(parseInt(a,10)
这是:

如果将数字与字符串进行比较,或者比较涉及数字字符串,则每个字符串都是数字,并且比较是以数字进行的。这些规则也适用于该语句。当比较是
==
!==
时,不会进行类型转换,因为这涉及比较类型和值。


好问题。if-else语句是正确的,但是变量设置不正确

您可以使用var,但应该使用let或const。(但这只是一个语义问题)

你有问题的真正原因是你把你的数字作为字符串。所以从字面上来说,“60”不小于“500”

var a=60;
var b=500;

在这种情况下,结果会是真的。事实上,60小于500=)


继续做好工作。

这不是Javascript支持if、else if和else语句的情况,但在代码中,您已将值声明为字符串,因此编译器不会直接比较字符串,因此您必须将变量a和b传递给Javascript的“Number”函数,该函数将字符串转换为整数

var a = '60';
var b = '500';
var aint = Number(a);
var bint = Number(b);

if(aint < bint) {
  console.log('true');
} 
else if(aint>bint){
    console.log('a is greater');
  }else {
  console.log('false');
}

Output: true
var a='60';
var b='500';
var aint=编号(a);
var bint=数量(b);
如果(不小于bint){
console.log('true');
} 
否则,如果(不是>宾特){
console.log('a更大');
}否则{
console.log('false');
}
输出:真

您正在比较字符串,而不是数字。但在php代码中,结果是真实的,您能为我解释一下吗?但在php代码中,结果是真实的,您能为我解释一下吗?没问题,很乐意提供帮助。我回答同样的问题快了9分钟?哦,好吧。干杯。