javascript エラー「Uncaught TypeError: xxx.slice is not a function」の解決方法

javascript エラー「Uncaught TypeError: xxx.slice is not a function」の解決方法

javascriptで、エラー「Uncaught TypeError: xxx.slice is not a function」が発生した場合の原因と解決方法を記述してます。「文字列」か「配列」以外に「slice」を使用した場合に発生します。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 107.0.5304.122

エラー内容

以下の、コードにて発生。

const num = 1111;

const result = num.slice(2);

エラーメッセージ

Uncaught TypeError: num.slice is not a function

画像

firefox105の場合でも同じエラーが発生します。

Uncaught TypeError: num.slice is not a function

画像

safari15.5では、以下のエラーとなります。

TypeError: num.slice is not a function. (In 'num.slice(2)', 'num.slice' is undefined)

画像

原因

「slice」は、文字列か配列にしか使用できないため

解決方法

「文字列」に変換して使用するか、

const num = 1234;

const result = num.toString().slice(2);

console.log( result ); // 34

「文字列」か「配列」であるかを判定してから使用する

const num = 1234;

if(typeof num === 'string' || Array.isArray(num)){
  const result = num.slice(2);
}