那你知道为什么
a=3 && 4 || 5;
a=3 && (4|| 5);
的结果都是4,而不是别的值呢?
a=3 && 4 || 5;
a=3 && (4|| 5);
的结果都是4,而不是别的值呢?
解决方案 »
- extjs 窗口显示问题
- 我想用一个小喇叭的图片来实现点击播放音乐,该如何实现?
- Js的setInterval不能传递this吗?
- ShowModalDialog对话框中的后退怎么不起作用?
- (高分求!!急!!)如何在网页上调用dll啊?在Fire fox下也可用的方法!
- 广告问题,.net的控件好像不能达到我的要求,请大家帮帮忙。
- 这些语名在有些IE中不能执行?
- 工作到凌晨5点,突然发现今天是圣诞节,特此散分。
- 行行好,帮一下。关于javascript中showModalDialog的小问题
- 如何用javascript在当前窗口打开网页?
- ext4.2 导入工程,哪些文件(夹)是必须保留的?求大神帮忙,3q!
- swfobject 支持播放列表吗?
表达式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=3 && 4 || 5;
我是说出现这么一个表达式的时候,是先3 && 4的结果得出来以后再与5进行逻辑或运算,
还是4和5先逻辑或,然后结果和3逻辑与运算优先级得问题
当然是先3 && 4的结果得出来以后再与5进行逻辑或运算,
alert(3 || 4 && 5); //3
alert((3 || 4) && 5); //5
var a=0 && (4|| 5) ; // 0