I';我对javascript中的if语句感到困惑
我在javascript中有这样一个条件: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
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分钟?哦,好吧。干杯。