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

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

感谢您的回复:)

最佳答案

如果使用OR比较,如果最左边的表达式中的任何一个为true,则整个表达式的结果为true。从而,
( 1 || 3 )将选择1,因为1是最左侧的已定义值,当您执行a === ( 1 || 3 )时,由于truea === 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,因为3是最左侧的已定义值,当您执行a === ( 3 || 1 )时,由于falsea === 3,因此它将是false,因为a = 1

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

09-25 18:34