我尝试使用此比较语句,几乎可以确定这会起作用,但事实并非如此。你能解释为什么吗?
let a = 1
a === ( 1 || 3 ) // true
a === ( 3 || 1 ) // false
感谢您的回复:)
最佳答案
如果使用OR
比较,如果最左边的表达式中的任何一个为true,则整个表达式的结果为true。从而,( 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
,因为3
是最左侧的已定义值,当您执行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);