上å?ˆçœ‹åˆ°å?¸å¾’æ£ç¾Žå?‘çš„å?šæ–‡ï¼Œï¼Œçœ‹çš„时候自己也觉得推æ–的挺好的;ä¸?过刚好下å?ˆå†™äº†ä¸€ä¸ªå›¢è´å€’计时页é?¢ï¼Œå?Œäº‹æ‹¿è¿‡åŽ»ç”¨ä¹‹å?Žï¼Œå?‘现时间过长会出现倒计时ä¸?走的情况,伪代ç ?如下
var timer, timeout = ~~elem.getAttribute('data-timeout');
if(timeout > 0){
timer = startTimeout(timeout, function(queue){
//...
});
}
å…¶ä¸çš„~~elem.getAttribute('data-timeout')
(elem.getAttribute('data-timeout')|0
,效果相å?Œï¼‰å°±æ˜¯å?·æ‡’çš„æ–¹å¼?去强制转整型,其类似的ç‰ä»·äºŽparseInt(elem.getAttribute('data-timeout'),10)||0
,以å‰?一直认为是ç‰ä»·çš„,但是现在å?ªèƒ½è¯´æ˜¯ç±»ä¼¼ç‰ä»·ã€‚
但是å?Œäº‹è¾“出的数值为:2703986000,在æ–点调试时,å?‘现没有进if
也就是说转�或的数值�于0了,为了验��了如下测试:
~~'2703986000'; //-1590981296
'2703986000' | 0; //-1590981296
parseInt('2703986000'); //2703986000
~~'-15909812967'; //1270056217
'-15909812967' | 0; //1270056217
parseInt('-15909812967', 10); //-15909812967
测试�现��算强制转整型有边界值,而且边界值�于Number.MAX_VALUE
,并且大于Number.MIN_VALUE
,所以当在处�大数值的时候,使用��算是有风险的;
然���部分测试,求了一下��算的边界值(对��算�了解,�能与平�也有关系)
~~'2147483647'; //2147483647
~~'2147483648'; //-2147483648
~~'-2147483648'; //-2147483648
~~'-2147483649'; //2147483647
其实仔细看的è¯?,上é?¢è¿˜æ˜¯æœ‰è§„律的;涉å?Šåˆ°ä½?è¿?算,ä¸?对之处请æ‹?ç –ï¼?
上一篇:让网页��浅�(CSS+Javascript)
下一篇:CSS兼容背景�明处�
共1评论
鲤鱼爱�水说:
于 2014-5-26 10:40:41 #
试试 1024*1024*1024*4 >> 0
1024*1024*1024*2 >> 0
1024*1024*1024 >> 0
回�