偶遇一奇怪的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))加上()就可以改变执行顺序,从而达到先前的要求
挺有意思的一个bug
时间: 2024-10-18 19:03:05