为什么这个 js 代码段中的“=”语法不正确

Why is this '=' syntax incorrect in this js snippet?

本文关键字:语法 不正确 段中 js 代码 为什么      更新时间:2024-03-15
var hungry = true;
var foodHere = true;
var eat = function() {
  if (hungry && foodHere === true) {
      return(true);
  } else {
      return(false);
  }`
};

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

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

语法

比较运算符的语法相当简单,使用它们来计算表达式。比较运算符是:

=== //strict equality
==  //Parsed or partial equality
>   //Greater Than
<   //Less than
>=  //Greater than or equal to
<=  //Less than or equal to

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

if(true == 1 === true) //do something

因为这会使代码无效,并使用 == 减慢它的速度,这将我带到下一节。

平等

JavaScript 中的两个相等运算符是 ===== 。他们做两件截然不同的事情。

===

严格相等(===(检验两个值在类型和值上是否完全等价。

==

解析的相等性(==(测试两个值的值是否相等,但解析以尝试连接不同的类型。

不等式

JavaScript 中有 2 个主要的不等式值(!==(,它们基于等式(=====
(是不言自明的。这是一张解释这三者的图表。

          1      0      true      false      null      undefined     ""
        1 ===   !==       ==        !==        !==         !==      !==
        0 !==   ===      !==        ==         ==          ==       !==
     true  ==   !==      ===        !==        !==         !==      !==
    false !==   ==       !==        ===        ==          ==       ==
     null !==   ==       !==        ==         ==          ==       ==
undefined !==   ==       !==        ==         ==          ===      !==
      ""  !==   ==       !==        ==         ==          !==      ===

加上@jcollum所说的,=定义了一个变量值,if(something === true)简化为if(something)。同样,if(something === false)简化为 if (!something)

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

结果

是:

hungry && foodHere === true

hungry && true

或者只是

hungry

使用赋值运算符而不是比较运算符会阻止逻辑正常工作。