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

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

javascriptで、エラー「Uncaught TypeError: num.padStart is not a function」が発生した場合の原因と解決方法を記述してます。

環境

  • OS windows11 pro 64bit
  • ブラウザ chrome 104.0.5112.101

エラー内容

以下の、「padStart」で「ゼロ埋め」を行おうとしたコードを実行時に発生。

const num = 123;

console.log(
  num.padStart(5, "0")
);
// Uncaught TypeError: num.padStart is not a function

エラーメッセージ

Uncaught TypeError: num.padStart is not a function

画像

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

Uncaught TypeError: num.padStart is not a function

画像

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

TypeError: num.padStart is not a function. (In 'num.padStart(5, "0")', 'num.padStart' is undefined)

画像

原因

「padStart」は「文字列」のみ使用できるため

解決方法

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

const num = 123;

console.log(
  num.toString().padStart(5, "0") // 00123
);

文字列として使用する

const num = '123';

console.log(
  num.padStart(5, "0") // 00123
);

または、型チェックをした後に使用します。

const num = 123;

if(typeof num === 'string'){

    console.log(
        num.padStart(5, "0") // 00123
    );

}

ちなみに「padStart」で埋めたい値に数値を使用してもエラーにはなりません。

const num = '123';

if(typeof num === 'string'){

    console.log(
        num.padStart(5, 0) // 00123
    );

}