var i=10;
i>0 && (i=0);
alert(i) //i值为0
上面是我今天看某个代码时遇到的,当然做了简化,这里&&怎么实现判断效果的,什么原理呢?
解决方案 »
- jquery引用报NetworkError: 400 Bad Request
- 表头锁定 lockTableTitle.js 免费发布
- Ext js designer javascript 懂的都进来看看啊
- 如何用o.insertBefore实现o.insertAdjacentElement("AfterBegin", someObject)
- 我的时间太长了,怎么变成一般格式的?
- 高手帮忙!!!请问怎么实现或者说模拟出多重继承?
- 两个页面的表单数据传送问题!!!在线等待
- 怎样蔽屏网页地址中显示的绝对地址?
- 帮忙看看我这个regist.html,点击重置怎么也跳转,用户名和确认密码的判断信息咋也不管用,,,,
- jq的uploadify上传插件参数传递问题
- js 中一个函数的用法
- 为什么还能提交
i > 0 && (i = 0);
alert(i) //i值为-10&&运算符当第一个条件为真时,才会判断第二个条件,当第一个条件为false时,根本不做后面的判断,
所以 i > 0 && (i = 0);
这句相当于
if (i>0)
{
i=0;
}
i>0 && (i=0);
这里有两个逻辑判断,代码运行时先判断第一个 i>0 为true
但不表示整个表达式为true ,所以继续运行判断 (i=0)如果i的初始值为0的话,i>0 为false,因为是 && 判断,所以只要第一个为false,整个表达式必然为false。所以就没有必要进行第二个判断,为了节省效率。所以这时(i=0)就不会被运行
var i = 1;
i && alert(i)当&&左边的值为true时,右边式子才会运行 (&&结合性是从左到右的)反之不运行
var i = 10;
if(i > 0){
i = 0;
}
alert(i)