var i;
for(i = 0;i < 100;i ++){
console.log(i&&0);
}
运行结果只输出一个0
初学javascript,求指教!
是输出100个0,只是控制台将连续相同的打印结果合并了,显示打印了多少次
任何数&0结果都是0
为什么循环不执行呢?根据代码来看应该输出100个
100个0没毛病!
&&又叫短路与,当左条件为0时,它就不再执行右条件,直接返回结果为0,(就是并且的意思!),只有当两边都不为0时才返会1,你的代码右边是0,所以无论左边为多少,最终的结果都是0.
循环了100次,故为100个0.
0是false,无论你什么布尔&&上false都是false,然后100个0在控制台打印在了一起
你用任何值&&0 最后的结果都是0 所以会输出100个0
其实这个问题和 && 关系不大啊, 就只是上面 @showbo 说的,结果都是一样 , 浏览器直接显示次数
100行0,显示折叠了。
那么好好记住了,在Javascript中
&&操作符返回的结果是取决于其类型的,如果是boolean类型,如false && false 则返回false,只有同时为true时
才为true,但是如果两边的对象不是boolean类型,是其他类型的话,都将返回后一个结果(但是如果两边都有0的话,返回0)比如你的这个 0&&0 返回0 1&& 0 也将返回0,
如果是1&&2 没有0的情况,都是返回后者。你可以自行测试。
0&&任何数都是0,这是短路与,换成||就是1了
重叠打印100个0
输出100个0,只显示一个是因为结果别覆盖了
一楼回答正确,浏览器控制台会将重复的消息做统计,显示一次。