日期:2014-05-18  浏览次数:20509 次

请教大家两段有趣的javascript代码
<html>
<script language="javascript">
var bTrue=true;
var bResult = (bTrue && bUnknow);
alert (bResult);
</script>
</html>
/*上面这段代码将会产生错误,而把第一个运算数设为false*/

<html>
<script language="javascript">
var bFalse=false;
var bResult = (bFalse && bUnknow);
alert (bResult);
</script>
</html>
/*这段代码就会运行成功,显示"false",劳烦大家解释一下原因,小菜serven7不甚感激*/

------解决方案--------------------
这个是&&运算符的问题--怎么说好呢:
也就是当bFalse ==false时后面的就不执行了(有一个为假,就为假)
当bFalse ==true 时后面的要继续判断的--好象叫短路(不一定准确)
------解决方案--------------------
bUnknow 因為這個值不存在
&&運算符,如果第一个为真,那么它要判断第二个值的,因为第二个值不存在,所以就发生异常了
如果第一个为假,那反,它第二个值就不去判断了,直接返回一个false;