挺有意思的一个bug

偶遇一奇怪的bug,型如$("tt").html("<div>"+0||Math.floor(Math.random()*100))+"</div>")

这个东西出现一个截取问题,看起来挺长的,实际上结果只有$("tt").html("<div>"+0)的结果,后面被截取了,想了半天有点云里雾里的,其实这就是一个细节的问题,或运算有个特点,是只要前部分为true结果就为true了,则不再执行后面的部分,而这个正常逻辑看来应该是先执行0||Math.floor(Math.random()*100)),,但是恰好相反,不但没有执行这个,还将它的0分出来了,结果就成了"<div>"+0   这个因为是字符串,在javascript里是认为是true的,于是返回了这个东西,没有达到原先的需求,只需要做一点改进,就是将0||Math.floor(Math.random()*100))加上()就可以改变执行顺序,从而达到先前的要求

posted on 2014-06-18 09:46  黑夜寻梦  阅读(119)  评论(0编辑  收藏  举报