javascript エラー「Uncaught ReferenceError: Invalid left-hand side expression in prefix operation」の解決方法

javascript エラー「Uncaught ReferenceError: Invalid left-hand side expression in prefix operation」の解決方法

javascriptで、エラー「Uncaught TypeError: xxx.charAt is not a function」が発生した場合の原因と解決方法を記述してます。基本的に変数を参照していないものに対してインクリメントやデクリメントを実行すると発生します。

環境

  • OS windows11 pro 64bit
  • ブラウザ chrome106.0.5249.103

エラー内容

以下の、インクリメントを行うコードで発生。

let num = '1';

++(Number(num));

エラーメッセージ

Uncaught ReferenceError: Invalid left-hand side expression in prefix operation

画像

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

Uncaught ReferenceError: cannot assign to function call

画像

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

ReferenceError: Prefix ++ operator applied to value that is not a reference.

画像

原因

変数を参照していないものに対してインクリメントを行っているため。例えば以下のようなパターンも似たようなエラーが発生します。

++1;
// Uncaught SyntaxError: Invalid left-hand side expression in prefix operation

解決方法

変数を参照する形でインクリメントすることで解決します。

let num = Number('1');

++num;