Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.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 错误的赋值,逻辑运算符_Javascript - Fatal编程技术网

Javascript 错误的赋值,逻辑运算符

Javascript 错误的赋值,逻辑运算符,javascript,Javascript,我在代码学院学习Javascript。这是我接受的测试 在eat函数中,创建一个if语句,该语句仅在饥饿和食物都为true时返回true,否则返回false 下面的代码正在执行,但有一个警告。有什么问题吗 var hungry = true; var foodHere = true; var eat = function() { if(hungry && foodHere){ console.log("I am hungry"); }else if(hun

我在代码学院学习Javascript。这是我接受的测试

在eat函数中,创建一个if语句,该语句仅在饥饿和食物都为true时返回true,否则返回false

下面的代码正在执行,但有一个警告。有什么问题吗

var hungry = true;
var foodHere = true;

var eat = function() {

  if(hungry && foodHere){
      console.log("I am hungry");
  }else if(hungry && foodHere = false){
      console.log("Choose one");
  }


};
eat();

Single=用于赋值,==用于比较

var hungry = true;
var foodHere = true;

var eat = function() {

  if(hungry && foodHere){
      console.log("I am hungry");
  }else if(hungry && foodHere == false){
      console.log("Choose one");
  }


};
eat();

无论如何,您不需要第二次比较,因为如果第一次比较为false,它将始终通过else进行比较

var hungry = true;
var foodHere = true;

var eat = function() {

  if(hungry && foodHere){
      console.log("I am hungry");
  }else if(hungry && foodHere == false){
      console.log("Choose one");
  }


};
eat();
var hungry = true;
var foodHere = true;

var eat = function() {

  if(hungry && foodHere){
      console.log("I am hungry");
  }else {
      console.log("Choose one");
  }


};
eat();
无论如何,你不需要第二次比较,因为如果第一次比较是错误的,它将始终通过另一次比较

var hungry = true;
var foodHere = true;

var eat = function() {

  if(hungry && foodHere){
      console.log("I am hungry");
  }else {
      console.log("Choose one");
  }


};
eat();
问题是,您试图在条件
foodher=false
中指定一个值。如果要比较所需的内容,并且要确保类型相同,请使用
==
。 但你根本不需要那种条件

赋值要求您返回布尔值(
true
false
),而不是打印某些内容,因此我猜您的代码应该如下所示:

var hungry = true;
var foodHere = true;

var eat = function() {
  return (hungry && foodHere)
};

eat();
问题是,您试图在条件
foodher=false
中指定一个值。如果要比较所需的内容,并且要确保类型相同,请使用
==
。 但你根本不需要那种条件

赋值要求您返回布尔值(
true
false
),而不是打印某些内容,因此我猜您的代码应该如下所示:

var hungry = true;
var foodHere = true;

var eat = function() {
  return (hungry && foodHere)
};

eat();

=用于赋值,==用于值比较,==用于值和数据类型比较。因此,在与false进行比较时,可以使用==。但这不是最佳做法。我们总是用“!”将true转换为false时的否定运算符

var hungry = true;
var foodHere = true;

var eat = function() {

  if(hungry && foodHere){
      console.log("I am hungry");
  }else if(!hungry || !foodHere){
      console.log("Choose one");
  }
};
eat()

我使用的是| |运算符,假设任何一个都需要为false。如果两个false都是必需的,则可以选择&&

=用于赋值,==用于值比较,==用于值和数据类型比较。因此,在与false进行比较时,可以使用==。但这不是最佳做法。我们总是用“!”将true转换为false时的否定运算符

var hungry = true;
var foodHere = true;

var eat = function() {

  if(hungry && foodHere){
      console.log("I am hungry");
  }else if(!hungry || !foodHere){
      console.log("Choose one");
  }
};
eat()

我使用了| |运算符,假设任何一个都必须为false。如果两个false都是必需的,你可以使用&&我只想为emilioicai的答案提供更多信息,JavaScript中有两种“相等比较”

  • 等于(=)
  • 正好等于(==)

  • 参考资料:

    我只想为emilioicai的回答提供更多信息,JavaScript中有两种“相等比较”

  • 等于(=)
  • 正好等于(==)

  • 参考:

    =
    是赋值运算符<代码>=是一个比较运算符。更好的方法是使用
    !foodher
    而不是
    foodher==false
    。由您自己来决定
    意味着。他们没有提到console.log;-)<代码>=
    是赋值运算符<代码>=是一个比较运算符。更好的方法是使用
    !foodher
    而不是
    foodher==false
    。由您自己来决定
    意味着。他们没有提到console.log;-)