Number.MAX_SAFE_INTEGER、Number.MIN_SAFE_INTEGERを使えば、精度が保証される範囲の整数値を取得できるのでそれを使います。
以下は、30 seconds of codeより引用です。
const toSafeInteger = num =>
Math.round(Math.max(Math.min(num, Number.MAX_SAFE_INTEGER), Number.MIN_SAFE_INTEGER));
toSafeInteger('3.2'); // 3
toSafeInteger(Infinity); // 9007199254740991