Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript if语句不返回true_Javascript_If Statement - Fatal编程技术网

Javascript if语句不返回true

Javascript if语句不返回true,javascript,if-statement,Javascript,If Statement,我应该得到一个可以被2整除的数字,我正在这样做。我不知道为什么我的代码不起作用。我在学习javascript的课程中这样做。我得到的错误是: 哎呀,再试一次。当number=2时,函数返回false。如果收到的数字为偶数,请检查if/else语句中的代码是否正确返回true 问题是: 在isEven函数内编写if/else语句。 它应该是真的;如果它接收的数字可以被2整除。 否则(else),它应该返回false;。 确保返回-不要使用console.log() 我的代码 var isEven

我应该得到一个可以被2整除的数字,我正在这样做。我不知道为什么我的代码不起作用。我在学习javascript的课程中这样做。我得到的错误是:

哎呀,再试一次。当number=2时,函数返回false。如果收到的数字为偶数,请检查if/else语句中的代码是否正确返回true

问题是:

在isEven函数内编写if/else语句。 它应该是真的;如果它接收的数字可以被2整除。 否则(else),它应该返回false;。 确保返回-不要使用console.log()

我的代码

var isEven = function(number) {
// Your code goes here!
  if(4 % 2) {
      return true;
  } else {
      return false;
  }
};
我做错了什么?

试试这个
var isEven=函数(编号){
如果(编号%2==0){
返回true;
}否则{
返回false;
}
};
控制台日志(isEven(4));
控制台日志(isEven(3));

控制台日志(isEven(6))在if语句
4%2
中给出了
0
,而在if语句中给出了
false
,这就是它不起作用的原因

将if语句更改为

if(4%2==0)

其他答案在我输入时是正确的,只是为了解释

var isEven = function(number) {
// Your code goes here!
  if(4 % 2) {
      return true;
  } else {
      return false;
  }
};
%
这是模数除法运算符。所以它返回一个值。模数告诉你除法后剩下的余数。所以4模2返回0,因为没有剩余。因此,您需要对照返回的值进行检查

var isEven = function(number) {
// Your code goes here!
  if(4 % 2 == 0) {
      return true;
  } else {
      return false;
  }
};
若并没有余数,那个么它就是一个偶数,因为2将它均匀地除以,并没有剩余。所以3模2返回1,因为2除以3一次,剩下1

根据下面的评论(似乎已被删除),当使用负数和正数时,模数和余数之间似乎存在差异,但严格来说,javascript运算符的定义是:

余数运算符返回一个操作数除以第二个操作数时剩余的余数。它总是以股息的符号,而不是除数。它使用内置的模函数生成结果,即var1除以var2的整数余数-例如-var1模var2。有人建议在未来版本的ECMAScript中获得一个实际的模运算符,不同之处在于模运算符结果将采用除数的符号,而不是股息

此外,您在if语句中硬编码了4,因此它将始终返回true!函数的参数是number

var isEven = function (number) {
    // Your code goes here!
    if (number % 2 == 0) {
        return true;
    }
    else {
        return false;
    }
};

4
应该是
number
那么我应该在哪里定义number呢?
number
是函数的形式参数
number
是您为参数键入的名称,因此在
isEven(42)
之后的函数中,
number
包含42,即您想要测试的
%2
,并且,
4%2
会给你
0
这是错误的。谢谢你的回答!为什么其他人说要使用number参数。我从来没有定义过,所以如果'number%2==0'怎么可能是真的呢。我试过这个,它是正确的。我只是不明白为什么。@Becky在函数定义行“var isEven=function(number){”中,在函数后面的括号内定义了函数的输入或参数。您定义了一个名为number的参数。这样,您就可以传入一个值,并对函数进行测试。因此,您可以随时这样做:isEven(30)在函数内部,参数编号现在保留值30。也没问题!很乐意帮助=]明白了,所以我只是做一个if语句,稍后如果我给
number
一个值,它将测试它。正确。if语句将始终返回true,因为4模2将始终返回0,使用定义的参数编号使函数由于其结果取决于一个变量,而该变量在每次调用函数时都会发生变化。@Becky如果您使用的是Codecademy之类的东西,他们会为您在参数中插入一个数字,而无需您自己调用函数。