function isInt(value) {
return !isNaN(value) &&
parseInt(Number(value)) == value &&
!isNaN(parseInt(value, 10));
}
Tests:
isInt(7) // true
isInt("7") // true
isInt(7e5) // true
isInt("7e7") // true
isInt(" 7 ") // true
isInt("") // false
isInt(" ") // false
isInt(77.7) // false
isInt("1a") // false
isInt("7e7a") // false
isInt(null) // false
isInt(undefined) // false
isInt(NaN) // false