在console中打印 1&&2||3,1||2&&3结果是2,1 ,为什么打印2,1 ,实现这个打印结果的原理是?
1&&2||3 运算到2的位置,之后就不会往后运行,所以会输出2.
1||2&&3 运行到1的位置,之后就不会往后运行,所以会输出1.
1,2,3三者都是代表的是true,
在第一步中,1&&2此时返回的是2,接着就变成了 2||3,由于2是true。所以直接返回的是true
同样的,在第二部里面。1||2的时候,由于1是true,所以就直接返回1
也就是说:
1、只要“||”前面为false,不管“||”后面是true还是false,都返回“||”后面的值。
2、只要“||”前面为true,不管“||”后面是true还是false,都返回“||”前面的值。
建议将第二部的1改为0实验一下
运算符的优先级的问题,,建议用小括号,扩上,,,