首页 > 解决方案 > Javascript 比较逻辑 - 让 a = 1 。a === (3 || 1) 错误,为什么?

问题描述

我试过使用这个比较语句,几乎可以肯定它会起作用,但事实并非如此。你能解释一下为什么吗?

let a = 1 
a === ( 1 || 3 ) // true 
a === ( 3 || 1 ) // false 

感谢您的回复:)

标签: javascriptlogiccomparison

解决方案


当您使用OR比较时,如果最左边的表达式中的任何一个为真,则整个表达式的结果为真。因此,

( 1 || 3 )将选择最左侧的定义值,当你这样做时,1它会保持原样,因为.1a === ( 1 || 3 )truea === 1truea = 1

let a = 1;
let rightCondition = ( 1 || 3 );
//this will give 1
console.log(rightCondition);
console.log(a === rightCondition);

但是,( 3 || 1 )将选择3as3是最左侧的定义值,并且当您这样做时a === ( 3 || 1 ),它将保持false原样a === 3false假设a = 1.

let a = 1;
let rightCondition = ( 3 || 1 );
//this will give 3
console.log(rightCondition);
console.log(a === rightCondition);


推荐阅读