为什么这个 js 代码段中的“=”语法不正确
Why is this '=' syntax incorrect in this js snippet?
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
使用赋值运算符而不是比较运算符会阻止逻辑正常工作。
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- Amazon S3 REST API大小不正确
- Javascript Reg Exp不正确匹配
- DIV并排,位置不正确
- 仅在IE中,javascript中的时区名称不正确
- 注意:wp_enqueue_script调用不正确.在 Wordpress 调试模式下
- 你能解释一下为什么这个javascript不正确吗
- 从int值来看,Javascript日期不正确
- jQuery-迭代不正确?(太长,无法执行)
- 字符串解析不正确
- 筛选ng选项时语法不正确
- 为什么这个 js 代码段中的“=”语法不正确
- 否则语句不起作用是我在 jQuery 上的语法不正确
- Ajax - Spring 发送 javascript 对象并接受为自定义对象.客户端发送的请求在语法上不正确
- 返回操作的语法不正确
- If语句在javascript中不工作,语法是否正确?
- JQuery动画不起作用.可能是不正确的语法
- Spring表单:客户端发送的请求语法不正确()
- JSON:客户端发送的请求在语法上不正确
- 来自 gulp-ruby-sass 的语法错误似乎不正确