9.4 ToInteger

2010-05-04

number ToInteger(input:mixed)

Simply tries to convert the input to an unsigned integer (number) using ToNumber and flooring the result. The interesting difference would be that NaN is returned as +0. So the result is _always_ a number with value.

Code: (Meta Ecma)
function ToInteger(input){
var number = ToNumber(input);
if (isNaN(number)) return +0;
if (number === +0 || number === -0 || number === infinity || number === -infinity) return number;
var num2 = number;
if (number < 0) num2 = -num2; // abs
num2 = ~~num2; // floor
if (number < 0) num2 *= -1; // *sign
return num2;
}