javascript エラー「Uncaught SyntaxError: Invalid left-hand side in assignment」の解決方法
- 作成日 2022.06.22
- 更新日 2023.01.05
- javascript
- javascript
javascriptで、エラー「Uncaught SyntaxError: Invalid left-hand side in assignment」が発生した場合の原因と解決方法を記述してます。演算子の間違いやイベントの設定忘れなどで発生します。
環境
- OS windows11 pro 64bit
- Apache 2.4.43
- ブラウザ chrome 108.0.5359.125
エラー内容
以下のコードで発生。
※その他に同一のエラーがでるパターンは後述してます。
let x = 1;
let y = 2;
if (x = 1 || y = 3) {
console.log('success');
}
エラーメッセージ
Uncaught SyntaxError: Invalid left-hand side in assignment
画像
firefox(バージョン107)でも、同様のエラーとなります。
Uncaught SyntaxError: invalid assignment left-hand side
画像
原因
代入演算子「=」ではなく、演算子「==」を指定する必要があるため
解決方法
演算子「==」を使用する。
let x = 1;
let y = 2;
if (x == 1 || y == 3) {
console.log('success');
}
実行結果
その他
イベントのつけ忘れ
以下のように、イベントを指定するのを忘れた場合でも同じエラーが発生します。
<p id="hoge">sample</p>
<script>
document.getElementById("foo") = function (){
console.log("クリックされました")
}
// Uncaught ReferenceError: Invalid left-hand side in assignment
</script>
firefoxでは、以下のエラーとなります。
Uncaught ReferenceError: cannot assign to function call
イベントを指定することで解決します。
<p id="hoge">sample</p>
<script>
document.getElementById("hoge").onclick = function (){
console.log("クリックされました")
}
</script>
比較演算子
比較演算子の記述間違いでも同じエラーが発生します。
if (1 =< 2) {
console.log('sample')
}
// Uncaught ReferenceError: Invalid left-hand side in assignment
firefoxでは、以下のエラーとなります。
Uncaught SyntaxError: invalid assignment left-hand side
正しくは「<=」となります。
if (1 <= 2) {
console.log('sample')
}
ちなみに変数を使用した場合は、別のエラーとなります。
let x = 1;
let y = 2;
if (x =< y) {
console.log('success');
}
// Uncaught SyntaxError: Unexpected token '<'
firefoxでは、以下のエラーとなります。
Uncaught SyntaxError: expected expression, got '<'
-
前の記事
Linux 事前にいたディレクトリに移動する 2022.06.22
-
次の記事
VBA SQL Serverに接続してADODB.RecordsetのFindを使用してUpdateを行う 2022.06.22
コメントを書く