javascript - Javascript 比较逻辑 - 让 a = 1 。a === (3 || 1) 错误,为什么?
问题描述
我试过使用这个比较语句,几乎可以肯定它会起作用,但事实并非如此。你能解释一下为什么吗?
let a = 1
a === ( 1 || 3 ) // true
a === ( 3 || 1 ) // false
感谢您的回复:)
解决方案
当您使用OR
比较时,如果最左边的表达式中的任何一个为真,则整个表达式的结果为真。因此,
( 1 || 3 )
将选择最左侧的定义值,当你这样做时,1
它会保持原样,因为.1
a === ( 1 || 3 )
true
a === 1
true
a = 1
let a = 1;
let rightCondition = ( 1 || 3 );
//this will give 1
console.log(rightCondition);
console.log(a === rightCondition);
但是,( 3 || 1 )
将选择3
as3
是最左侧的定义值,并且当您这样做时a === ( 3 || 1 )
,它将保持false
原样a === 3
,false
假设a = 1
.
let a = 1;
let rightCondition = ( 3 || 1 );
//this will give 3
console.log(rightCondition);
console.log(a === rightCondition);
推荐阅读
- google-apps-script - 为什么 importXML 在我的 Google 表格中刷新时没有获取新数据?
- javascript - 反应 useState 钩子没有按预期工作
- javascript - 使用 cURL 与 php 进行 AJAX 调用 - 找不到 405 方法
- sql-server - 带有 nvarchar 的 T-SQL Where 子句由 openquery 中的 string_agg 组成
- vue.js - 如何将 VueJS 路由器链接 ID 增加 1?
- python - 构建具有多个图的网络
- java - 如何使用 JDBC 连接到 Oracle 数据库
- reactjs - Google 功能更正 IAM 设置以防止嵌套资源出现 403 错误
- java - 将调用外部 API 的业务逻辑放入 Spring Batch 编写器是否是个好主意?(将信息持久化到另一个系统中)
- github - Pycharm 或终端完成的推送不计入 github 的提交日历