取整函数和取整运算符的细节比较

>>;~~;Math.floor();Math.ceil();parseInt();都可以做到取整的效果,下面看看他们具体的不同点:

 1 console.log(-2.6>>0);
 2 console.log(2.6>>0);
 3 console.log(~~-2.6);
 4 console.log(~~2.6);
 5 
 6 /*number>0 ? Math.floor(number) : Math.ceil(number);*/
 7 
 8 console.log(Math.floor(-2.6));
 9 console.log(Math.floor(2.6));
10 console.log(Math.ceil(-2.6));
11 console.log(Math.ceil(2.6));
12 
13 console.log(parseInt(-2.6));
14 console.log(parseInt(2.6));

输出的结果依次是:

 

 

可以看出对于>>和~~运算符来说他们相当于parseInt函数不管是正数还是负数都只保留他的整数部分;

 

而Math.floor()向下取整,当为负数的时候取得的是小于这个数的最近的负整数;

 

Math.ceil()向上取整,当为负数的时候取得的是大于这个数的最近的负整数;

 

所以>>或者~~相当于:number>0 ? Math.floor(number) : Math.ceil(number);

posted @ 2015-01-09 13:19  暗语321  阅读(1554)  评论(0编辑  收藏  举报