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

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

javascriptで、エラー「Uncaught TypeError: xxx.length is not a function」が発生した場合の原因と解決方法を記述してます。「length」に「()」を使用した際に主に発生します。「chrome」や「firefox」や「safari」の各ブラウザのエラーメッセージの画像もキャプチャしてます。

環境

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

エラー内容

以下の、配列の長さを取得しようとしたコードにて発生。

const arr = [1, 2, 3];

const num = arr.length();

エラーメッセージ

sample.html:35 Uncaught TypeError: arr.length is not a function

画像

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

Uncaught TypeError: arr.length is not a function

画像

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

TypeError: arr.length is not a function. (In 'arr.length()', 'arr.length' is 3)

画像

原因

「length」は、「() 括弧」が必要ないため
※文字列などにも使用しても「() 括弧」がないと同じエラーが発生します。

const str = 'abc';

const num = str.length();
// Uncaught TypeError: str.length is not a function

解決方法

「() 括弧」を外す

const arr = [1, 2, 3];

const num1 = arr.length;

console.log(num1); // 3

const str = 'abc';

const num2 = str.length;

console.log(num2); // 3