Как проверить, является ли переменная в настоящее время целым типом? Я искал для этого какой-то ресурс, и я думаю, что оператор === важен, но я не уверен, как проверить, является ли переменная Integer (или Array, если на то пошло)
Проверка типов в javascript
Ответ 1
Переменная никогда не будет целым типом в JavaScript - она не различает разные типы Number.
Вы можете проверить, содержит ли переменная число, и если это число является целым числом.
(typeof foo === "number") && Math.floor(foo) === foo
Если переменная может быть строкой, содержащей целое число, и вы хотите узнать, имеет ли это значение:
foo == parseInt(foo, 10)
Ответ 2
Число является целым числом, если его по модулю% 1 равно 0 -
function isInt(n){
return (typeof n== 'number' && n%1== 0);
}
Это так же хорошо, как и javascript - скажем + - от десяти до пятнадцатого.
isInt (Math.pow(2,50)+. 1) возвращает true, как и
Math.pow(2,50)+. 1 == Math.pow(2,50)//true
Ответ 3
В эти дни ECMAScript 6 (ECMA-262) находится "в доме". Используйте Number.isInteger(x)
, чтобы задать вопрос, который вы хотите задать в отношении типа x:
js> var x = 3
js> Number.isInteger(x)
true
js> var y = 3.1
js> Number.isInteger(y)
false
Ответ 4
var a = 1;
if (typeof a == 'number') {
// ...
}
Ответ 5
Попробуйте этот код:
alert (typeof (1) == "number" );
Ответ 6
Я знаю, что вас интересуют числа Integer, поэтому я не буду отвечать на это, но если вы когда-нибудь захотите проверить номера плавающей точки, вы можете это сделать.
function isFloat( x )
{
return ( typeof x === "number" && Math.abs( x % 1 ) > 0);
}
Примечание. Это МОЖЕТ обрабатывать числа, заканчивающиеся на .0
(или любое логически эквивалентное число 0
) в качестве INTEGER. Для этого в действительности требуется ошибка точности с плавающей запятой для обнаружения значений с плавающей запятой в этом случае.
Исх.
alert(isFloat(5.2)); //returns true
alert(isFloat(5)); //returns false
alert(isFloat(5.0)); //return could be either true or false
Ответ 7
В целом несколько библиотек-утилит, таких как YourJS, предлагают функции для определения того, что-то является массивом или что-то целое или много других типов. YourJS определяет isInt, проверяя, является ли это число числом, а затем, если оно делится на 1:
function isInt(x) {
return typeOf(x, 'Number') && x % 1 == 0;
}
Вышеприведенный фрагмент был взят из этот фрагмент вашего сайта и, следовательно, работает только потому, что typeOf
определяется библиотекой. Вы можете скачать минималистичную версию YourJS, которая имеет в основном только функции проверки типов, такие как typeOf()
, isInt()
и isArray()
: http://yourjs.com/snippets/build/34,2
Ответ 8
Вы также можете посмотреть Runtyper - инструмент, который выполняет проверку типов операндов в ===
(и другие операции).
Для вашего примера, если у вас есть строгое сравнение x === y
и x = 123, y = "123"
, он автоматически проверяет typeof x, typeof y
и отображает предупреждение в консоли:
Строгое сравнение разных типов: 123 (число) === "123" (строка)