Подтвердить что ты не робот

Проверка типов в javascript

Как проверить, является ли переменная в настоящее время целым типом? Я искал для этого какой-то ресурс, и я думаю, что оператор === важен, но я не уверен, как проверить, является ли переменная Integer (или Array, если на то пошло)

4b9b3361

Ответ 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" (строка)