JavaScript - 変数が文字列であることを確認する

JavaScriptで変数が文字列であるかどうかを確認する方法を紹介します。

1. Stringの実装方法と種類

JavaScriptでは、以下の方法で文字列を定義できます。

typeofで型を確認すると、一重引用符、二重引用符、backtickで定義された文字列は文字列型で、 new String()で定義された文字列だけがオブジェクトです。

console.log(typeof 'Hello');
console.log(typeof "Hello");
console.log(typeof `Hello`);
console.log(typeof new String("Hello"));

Output:

string
string
string
object

2. 変数が文字列であるかどうかを確認する方法

文字列の種類は文字列型と文字列オブジェクトがあるので、以下のように二つの型とオブジェクトを確認すればよい。

if (typeof val === 'string' || val instanceof String) {
  // it's a string
}

4種類の文字列について上記のコードで確認してみると、以下のようにすべて文字列で確認になります。

function isString(val) {
  if (typeof val === 'string' || val instanceof String) {
    console.log('It is a string');
  } else {
    console.log('It is not a string');
  }
}

isString('Hello');
isString("Hello");
isString(`Hello`);
isString(new String("Hello"));

Output:

It is a string
It is a string
It is a string
It is a string

Numberや配列について確認すると、変数は文字列ではないと判断されます。

function isString(val) {
  if (typeof val === 'string' || val instanceof String) {
    console.log('It is a string');
  } else {
    console.log('It is not a string');
  }
}

isString(123);
isString([1, 2, 3]);

Output:

It is not a string
It is not a string
codechachaCopyright ©2019 codechacha