JavaScript: как проверить, является ли переменная строкой или числом

В JavaScript важно уметь определять тип переменной, особенно при работе с разными типами данных. В этой статье будут рассмотрены различные методы проверки того, является ли переменная строкой или числом. Мы рассмотрим примеры кода для каждого подхода, чтобы вы могли выбрать тот, который лучше всего подходит для вашего конкретного случая использования.

Метод 1: использование оператора typeof
Оператор typeof в JavaScript возвращает строку, которая представляет тип данных данной переменной. Используя этот оператор, мы можем легко проверить, является ли переменная строкой или числом.

function checkVariableType(variable) {
  if (typeof variable === 'string') {
    console.log('The variable is a string.');
  } else if (typeof variable === 'number') {
    console.log('The variable is a number.');
  } else {
    console.log('The variable is neither a string nor a number.');
  }
}
// Usage
checkVariableType('Hello');  // Output: The variable is a string.
checkVariableType(42);       // Output: The variable is a number.
checkVariableType(true);     // Output: The variable is neither a string nor a number.

Метод 2: использование функции isNaN()
Функция isNaN() проверяет, является ли значение NaN (не числом). Используя эту функцию, мы можем определить, является ли переменная числом или нет.

function checkVariableType(variable) {
  if (isNaN(variable)) {
    console.log('The variable is not a number.');
  } else {
    console.log('The variable is a number.');
  }
}
// Usage
checkVariableType('Hello');  // Output: The variable is not a number.
checkVariableType(42);       // Output: The variable is a number.
checkVariableType(true);     // Output: The variable is a number.

Метод 3: использование регулярных выражений
Регулярные выражения также можно использовать для проверки того, является ли переменная строкой или числом. Мы можем проверить переменную на соответствие шаблону, чтобы определить ее тип.

function checkVariableType(variable) {
  if (/^[0-9]+$/.test(variable)) {
    console.log('The variable is a number.');
  } else {
    console.log('The variable is a string.');
  }
}
// Usage
checkVariableType('Hello');  // Output: The variable is a string.
checkVariableType('42');     // Output: The variable is a string.
checkVariableType(42);       // Output: The variable is a number.

Метод 4: использование функции Number.isNaN()
Метод Number.isNaN() является более надежной альтернативой глобальной функции isNaN(). Он специально проверяет, является ли значение NaN, и возвращает логическое значение.

function checkVariableType(variable) {
  if (typeof variable === 'string') {
    console.log('The variable is a string.');
  } else if (Number.isNaN(variable)) {
    console.log('The variable is not a number.');
  } else {
    console.log('The variable is a number.');
  }
}
// Usage
checkVariableType('Hello');  // Output: The variable is a string.
checkVariableType(42);       // Output: The variable is a number.
checkVariableType(true);     // Output: The variable is not a number.

Метод 5: использование функций parseInt() или parseFloat()
Функции parseInt() и parseFloat() полезны для преобразования строк в числа. Сравнивая преобразованное значение с исходной переменной, мы можем определить, является ли это строкой или числом.

function checkVariableType(variable) {
  const convertedValue = parseInt(variable);
  if (isNaN(convertedValue)) {
    console.log('The variable is a string.');
  } else {
    console.log('The variable is a number.');
  }
}
// Usage
checkVariableType('Hello');  // Output: The variable is a string.
checkVariableType('42');     // Output: The variable is a number.
checkVariableType(42);       // Output: The variable is a number.

В этой статье мы рассмотрели несколько методов проверки того, является ли переменная строкой или числом в JavaScript. Мы рассмотрели использование оператора typeof, функции isNaN(), регулярных выражений, метода Number.isNaN() и функций parseInt() или parseFloat(). Используя эти методы, вы сможете точно определить тип переменных и повысить надежность вашего кода JavaScript.