首页 新闻 会员 周边 捐助

运行结果为什么是6,求详解

0
悬赏园豆:5 [已解决问题] 解决于 2015-01-25 15:58

var x=3>=6;
var y=6;
var z=x||y;
document.write(z);

rain92的主页 rain92 | 初学一级 | 园豆:166
提问于:2015-01-24 11:05
< >
分享
最佳答案
2

 

与和或并不总是返回布尔值,与和或操作,返回的是最后确定结果的值,由于3>=6为false,不能确定或的值,到6的时候确定值,所以返回6

 

可以看看我的博客,关于

Javascript 布尔操作符总结

 

与和或:

与和或并不总是返回布尔值,&&和||操作主要遵循几大原则: 

1.短路操作原则:如果第一个操作数能决定操作结果,就不会再对第二个操作数求值,直接返回第一个操作值。 

2.求值过程中会被转型生成副本,但是返回值是原来值;

  javascript中的逻辑操作中的&&与||操作并不是总是返回True和False,它返回的值是最后确定结果的值,例:

 

Null&&true         // null就确定结果了返回 null

true&&undefined     // undefined确定结果返回undefined

Object&&{}&&[]&&2     //返回2

Object&&{}&&2&&[]     //空数组

 Null||9                        //   值为9

null||9||undefined      // =9

null||undefined      // undefined

 

 

概括的说:

           &&操作:值为真时,返回最后一个值,到最一个才能确定结果;

                       值为假时,返回第一个假值,一旦有假值结果确定为假.

           ||操作 :值为真时,返回第一个真值,一旦有真结果为真;

                       值为假时,返回最一个值,到最一个才能确定结果.

                      所以说,与和或操作,返回的是最后确定结果的值

 

 

 

 

 

收获园豆:5
路西恩 | 菜鸟二级 |园豆:371 | 2015-01-25 14:17
其他回答(3)
0

x = false, 取 y

Yu | 园豆:12990 (专家六级) | 2015-01-24 11:11
0

JS就是怎么NB(恶心),false和NULL等是一样的,返回的当然是变量Y

xujiatao | 园豆:360 (菜鸟二级) | 2015-01-24 18:55
0

觉得这问题和1+1为什么等于2一样…

Firen | 园豆:5385 (大侠五级) | 2015-01-25 08:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册