var a=true || false && false || false; // true
var a=(true || false) && (false || false); // false
但是3个运算变量似乎举例不出来。
如
var a=3 && 4 || 5; // 4
var a=3 && (4|| 5) ; // 4
这里就觉得&&和||的优先级谁高谁低不重要,结果都一样,有人可以举出反例吗?
7 个解决方案
#1
那你知道为什么
a=3 && 4 || 5;
a=3 && (4|| 5);
的结果都是4,而不是别的值呢?
a=3 && 4 || 5;
a=3 && (4|| 5);
的结果都是4,而不是别的值呢?
#2
这不是优先级谁高谁低的问题。而是&&和||的另外一个特性的问题。
首先
表达式A && 表达式B 的工作原理是:如果A的值为false(或A的值可以被当做为false)就返回A的值并且不执行表达式B,否则执行表达式B并且返回B的值
表达式A || 表达式B 的工作原理是:如果A的值为true(或A的值可以被当做为true)就返回A的值并且不执行表达式B,否则执行表达式B并且返回B的值
javascript中0 "" null undefined会被当做为false,其实的值都可以被当做为true
所以3 4 5都被当做为true
这下知道为什么的结果都是4了吧
首先
表达式A && 表达式B 的工作原理是:如果A的值为false(或A的值可以被当做为false)就返回A的值并且不执行表达式B,否则执行表达式B并且返回B的值
表达式A || 表达式B 的工作原理是:如果A的值为true(或A的值可以被当做为true)就返回A的值并且不执行表达式B,否则执行表达式B并且返回B的值
javascript中0 "" null undefined会被当做为false,其实的值都可以被当做为true
所以3 4 5都被当做为true
这下知道为什么的结果都是4了吧
#3
那关优先级的事。
#4
我当然知道逻辑与和逻辑或的原理
a=3 && 4 || 5;
我是说出现这么一个表达式的时候,是先3 && 4的结果得出来以后再与5进行逻辑或运算,
还是4和5先逻辑或,然后结果和3逻辑与。。。
运算优先级得问题
#5
a=3 && 4 || 5;
当然是先3 && 4的结果得出来以后再与5进行逻辑或运算,
当然是先3 && 4的结果得出来以后再与5进行逻辑或运算,
#6
明白了,你是要3个运算变量举例是吧
alert(3 || 4 && 5); //3
alert((3 || 4) && 5); //5
alert(3 || 4 && 5); //3
alert((3 || 4) && 5); //5
#7
var a=0 && 4 || 5; // 5
var a=0 && (4|| 5) ; // 0
var a=0 && (4|| 5) ; // 0
#1
那你知道为什么
a=3 && 4 || 5;
a=3 && (4|| 5);
的结果都是4,而不是别的值呢?
a=3 && 4 || 5;
a=3 && (4|| 5);
的结果都是4,而不是别的值呢?
#2
这不是优先级谁高谁低的问题。而是&&和||的另外一个特性的问题。
首先
表达式A && 表达式B 的工作原理是:如果A的值为false(或A的值可以被当做为false)就返回A的值并且不执行表达式B,否则执行表达式B并且返回B的值
表达式A || 表达式B 的工作原理是:如果A的值为true(或A的值可以被当做为true)就返回A的值并且不执行表达式B,否则执行表达式B并且返回B的值
javascript中0 "" null undefined会被当做为false,其实的值都可以被当做为true
所以3 4 5都被当做为true
这下知道为什么的结果都是4了吧
首先
表达式A && 表达式B 的工作原理是:如果A的值为false(或A的值可以被当做为false)就返回A的值并且不执行表达式B,否则执行表达式B并且返回B的值
表达式A || 表达式B 的工作原理是:如果A的值为true(或A的值可以被当做为true)就返回A的值并且不执行表达式B,否则执行表达式B并且返回B的值
javascript中0 "" null undefined会被当做为false,其实的值都可以被当做为true
所以3 4 5都被当做为true
这下知道为什么的结果都是4了吧
#3
那关优先级的事。
#4
我当然知道逻辑与和逻辑或的原理
a=3 && 4 || 5;
我是说出现这么一个表达式的时候,是先3 && 4的结果得出来以后再与5进行逻辑或运算,
还是4和5先逻辑或,然后结果和3逻辑与。。。
运算优先级得问题
#5
a=3 && 4 || 5;
当然是先3 && 4的结果得出来以后再与5进行逻辑或运算,
当然是先3 && 4的结果得出来以后再与5进行逻辑或运算,
#6
明白了,你是要3个运算变量举例是吧
alert(3 || 4 && 5); //3
alert((3 || 4) && 5); //5
alert(3 || 4 && 5); //3
alert((3 || 4) && 5); //5
#7
var a=0 && 4 || 5; // 5
var a=0 && (4|| 5) ; // 0
var a=0 && (4|| 5) ; // 0