Number.isInteger()
- лучший способ, если ваш браузер поддерживает его, если нет, я думаю, что есть много способов пойти:
function isInt1(value){
return (value^0) === value
}
или:
function isInt2(value){
return (typeof value === 'number') && (value % 1 === 0);
}
или :
function isInt3(value){
return parseInt(value, 10) === value;
}
или:
function isInt4(value){
return Math.round(value) === value;
}
теперь мы можем проверить результаты:
var value = 1
isInt1(value) // return true
isInt2(value) // return true
isInt3(value) // return true
isInt4(value) // return true
var value = 1.1
isInt1(value) // return false
isInt2(value) // return false
isInt3(value) // return false
isInt4(value) // return false
var value = 1000000000000000000
isInt1(value) // return false
isInt2(value) // return true
isInt3(value) // return false
isInt4(value) // return true
var value = undefined
isInt1(value) // return false
isInt2(value) // return false
isInt3(value) // return false
isInt4(value) // return false
var value = '1' //number as string
isInt1(value) // return false
isInt2(value) // return false
isInt3(value) // return false
isInt4(value) // return false
Итак, все эти методы работают, но когда число очень большой, parseInt и оператор ^ не будут работать хорошо.
Я нашел эту статью msdn , которая, кажется, иллюстрирует вашу проблему и способы ее решения.
FTA
Закройте все экземпляры выпусков Visual Studio Team System 2008 .
В командной строке Windows введите следующую команду:
% ProgramFiles% \ Microsoft Visual Studio 9.0 \ DBPro \ DBProRepair.exe RemoveDBPro2008
Нажмите клавишу ВВОД.
% ProgramFiles% \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ devenv.exe / ResetUser
После вызова
DBProRepair.exe RemoveDBPro2008
пункт меню «Данные» в Visual Studio исчез. Мне пришлось запустить
DBProRepair.exe RestoreDBPro2008
, чтобы вернуть его в Visual Studio.