为什么这个'='语法在这个js片段中不正确?

Jer*_*y H -5 javascript

var hungry = true;
var foodHere = true;

var eat = function() {
  if (hungry && foodHere === true) {
      return(true);
  } else {
      return(false);
  }`

};
Run Code Online (Sandbox Code Playgroud)

第一行是正确的语法.很长一段时间我只是说hungry && foodHere = true...我无法弄清楚(并且仍然不明白)为什么这是错误的.我理解=(赋值)和===(等于)之间的区别.我true最初将变量分配给了,所以我不会在if语句中询问它们是否被设置为什么?为什么我=要在var定义中设置变量,但是在检查它们时我正在使用该===值?

Tra*_*vis 5

=仅用于分配变量.=====用于比较.举个好例子,我们必须研究比较运算符.

句法

比较运算符的语法非常简单,使用它们来计算表达式.比较运营商是:

=== //strict equality
==  //Parsed or partial equality
>   //Greater Than
<   //Less than
>=  //Greater than or equal to
<=  //Less than or equal to
Run Code Online (Sandbox Code Playgroud)

要正确使用这些,您必须知道正确的语法.例如,我做不到这样的事情:

if(true == 1 === true) //do something
Run Code Online (Sandbox Code Playgroud)

因为这将使代码无效,并通过大量使用减慢它==,这将我带到我的下一部分.

平等

JavaScript中的两个相等运算符是=====.他们做了两件完全不同的事情.

===

strict(===)测试两个值是否完全等价,包括类型和值.

==

Parsed equality(==)测试两个值是否在值上是否相等,但是解析以尝试连接不同的类型.

不等式

JavaScript(!==)中存在两个主要的不等式值,它们基于等式(===,和==)是非常自我解释的,
这里是解释三者的图表.

          1      0      true      false      null      undefined     ""
        1 ===   !==       ==        !==        !==         !==      !==
        0 !==   ===      !==        ==         ==          ==       !==
     true  ==   !==      ===        !==        !==         !==      !==
    false !==   ==       !==        ===        ==          ==       ==
     null !==   ==       !==        ==         ==          ==       ==
undefined !==   ==       !==        ==         ==          ===      !==
      ""  !==   ==       !==        ==         ==          !==      ===
Run Code Online (Sandbox Code Playgroud)

添加到@jcollum所说的,=定义一个变量值,并if(something === true)简化为if(something).同样,if(something === false)简化为if (!something).

您还需要单独进行比较.if(7 & 6 < 10)返回false,因为它是.的简化版本if(7 === true && 6 < 10).