Javascript 一个“回报”怎么能知道给我的是真是假?

Javascript 一个“回报”怎么能知道给我的是真是假?,javascript,Javascript,在没有像第一个例子中那样的“如果”陈述的情况下,“返回”如何给出true或false 示例'1': function isEven(){ if(num % 2 === 0){ return true; } else { return false; } } 它是有效的,但是我的老师把它缩短成这样的例子-'2': function isEven(){ return num % 2 === 0 } 你这里有一个评估 num % 2

在没有像第一个例子中那样的“如果”陈述的情况下,“返回”如何给出true或false

示例'1':

function isEven(){
    if(num % 2 === 0){
        return true;
    } else {
        return false;
    }
} 
它是有效的,但是我的老师把它缩短成这样的例子-'2':

function isEven(){
    return num % 2 === 0
} 

你这里有一个评估

num % 2 === 0

代码将检查num除以2 num%2的余数是否等于0。这可以是真的,也可以是假的,因此它将返回真或假。

这里需要了解的是运算符是如何工作的

运算符对操作数进行操作。运算符和一个或多个操作数构成一个表达式。表达式被计算

return语句接受一个表达式并返回表达式计算结果的值。例如,1+2的计算结果为3


比较运算符和逻辑运算符,如==,您实际上并不是通过使用if语句来询问它的。if语句只检查括号之间的内容是真是假。就像加法1+2得到3一样,类似3==2的结果是false。你可以把它看作是一道有答案的普通数学题。计算机评估时:

num % 2 === 0
它计算num%2并检查它是否等于0。这可能是真的,也可能是假的。这两个值都是布尔值,与第一个示例中的值相同。因此,您的第一个示例真正要做的是检查表达式是真是假,然后返回准确的值,如下所示:

var num = 2;

if(num % 2 === 0){
    return true;
}
经过评估,这将基本导致:

if(true){
    return true;
}
看看省去if语句并返回num%2==0的结果是多么容易?

不是真正的答案,只是想帮助一下,所以请不要投票

我认为理解编程基础知识最简单的方法是回到日常生活中的例子,这里有一个:

你在和一个朋友说话,我们叫他鲍勃吧。鲍勃拥有一家冰淇淋店。现在是夏天。你想要冰淇淋,所以你问他你能不能买一个。鲍勃告诉你:

如果还有冰,我可以给你一些,否则我不能

但是,Bob也可以在不改变意思的情况下缩短他的答案:

取决于剩下的冰块


布尔数只是值,就像数字或字符串一样。在第一个示例中,如果IsiceStreamLeft为true,它将输入第一个if分支,然后返回true,否则如果为false,它将返回false。相反,您可以像第二个示例一样返回布尔值。

您可以从函数返回任何内容。请参考下面的例子来理解它

函数myFunctionval{ console.logtestval } 函数testval{ ifval==1返回“测试”; ifval==2返回true; ifval==3返回1>2; ifval==4返回2%3==0; } 测试1 测试2 测试3
Test4因为num%2===0的计算结果是布尔结果。我想您的老师的工作就是解释它。。。顺便说一下,回来!num%2甚至更短:@JamesThorpe可能这也意味着他认为===需要使用if语句进行询问……我的老师是一门在线课程,所以我不能直接问他,这就是我为什么要问他的原因here@NadavHimmelfarb您是否了解var x=num%2==0;如果x返回true;否则会退回虚假作品吗?具体来说,x在这里是什么?如果我在等价中使用“return”,我会得到true还是false?是吗?返回的表达式的计算结果为布尔值。因此,在“return”中计算的值始终为真/false@NadavHimmelfarb是 啊但显然你不会看到这种情况发生。JS解释器可以做到这一点。想想回报率1+3。你知道它将返回4,对吗?return num%2==0就是这样,但是使用布尔值。好吧,我认为我对这个比喻的理解要好得多,只是一个简单的问题,如果它不是一个聪明的问题,很抱歉,在这种情况下,它不会起作用,因为有大量的评估?首先:没有愚蠢的问题,只有愚蠢的答案。问问题的人通常比不知道什么是湖的人更聪明?!我的意思是缺乏评价。你可以猜到,英语不是我的母语:@JonasW。如果您不想投票,您可以将答案转换为社区wiki:
var num = 2;

if(num % 2 === 0){
    return true;
}
if(true){
    return true;
}
function canIGetIceCream() {
  if(isIceCreamLeft) {
    return true;
  } else {
    return false;
 }
}
function canIGetIceCream() {
  return isIceCreamLeft;
}