Invalid left-hand side in assignment in JavaScript [Solved]

avatar

Last updated: Mar 2, 2024 Reading time · 2 min

banner

# Invalid left-hand side in assignment in JavaScript [Solved]

The "Invalid left-hand side in assignment" error occurs when we have a syntax error in our JavaScript code.

The most common cause is using a single equal sign instead of double or triple equals in a conditional statement.

To resolve the issue, make sure to correct any syntax errors in your code.

invalid left hand side in assignment error

Here are some examples of how the error occurs.

# Use double or triple equals when comparing values

The most common cause of the error is using a single equal sign = instead of double or triple equals when comparing values.

use double or triple equals when comparing values

The engine interprets the single equal sign as an assignment and not as a comparison operator.

We use a single equals sign when assigning a value to a variable.

assignment vs equality

However, we use double equals (==) or triple equals (===) when comparing values.

# Use bracket notation for object properties that contain hyphens

Another common cause of the error is trying to set an object property that contains a hyphen using dot notation.

use bracket notation for object properties containing hyphens

You should use bracket [] notation instead, e.g. obj['key'] = 'value' .

# Assigning the result of calling a function to a value

The error also occurs when trying to assign the result of a function invocation to a value as shown in the last example.

If you aren't sure where to start debugging, open the console in your browser or the terminal in your Node.js application and look at which line the error occurred.

The screenshot above shows that the error occurred in the index.js file on line 25 .

You can hover over the squiggly red line to get additional information on why the error was thrown.

book cover

Borislav Hadzhiev

Web Developer

buy me a coffee

Copyright © 2024 Borislav Hadzhiev

How to fix SyntaxError: invalid assignment left-hand side

Let me show you an example that causes this error and how I fix it.

How to reproduce this error

How to fix this error, other causes for this error.

You can also see this error when you use optional chaining as the assignment target.

Take your skills to the next level ⚡️

Fixing Assignment Errors in JavaScript: 'Invalid left-hand side'

  • "Invalid assignment left-hand side"

What it Means:

This error arises in JavaScript when you attempt to assign a value to something that cannot be assigned to. In simpler terms, you're trying to put data (the value on the right side of the equal sign) into a location (the left side of the equal sign) that doesn't accept it.

Common Causes:

Here are some frequent scenarios that lead to this error:

Mistaking Comparison for Assignment:

  • You might accidentally use a single equal sign ( = ) instead of a comparison operator (like == or === ) within an if statement or similar conditional block.
  • For example: if (x = 5 ) { // Incorrect - trying to assign within an if statement console .log( "This won't work" ); }
  • The correct way to compare would be: if (x === 5 ) { // Correct - using comparison operator console .log( "This works" ); }

Assigning to Read-Only Values:

  • JavaScript has certain built-in values or properties that cannot be changed directly. Trying to assign to these will trigger the error.
  • Constants declared with const .

Incorrect Object Property Access:

Fixing the Error:

Double-Check Comparisons:

Verify Object Properties:

  • ReferenceError: Invalid left-hand side in assignment: This error might appear in similar scenarios, often when you attempt to assign to a variable that hasn't been declared or is inaccessible. Double-check variable declarations and scope.
  • TypeError: Cannot set property 'x' of undefined: This arises when you try to assign to a property of an undefined variable or object. Ensure the variable or object exists before accessing its properties.

Troubleshooting Tips:

  • Use Browser Developer Tools: When you encounter these errors, inspect your code using your browser's developer tools (usually F12 key). The console will pinpoint the exact line causing the issue, making debugging easier.
  • Read Error Messages Carefully: Error messages often provide valuable clues about the source of the problem. Pay attention to the line number mentioned in the error and the specific details it reveals.
  • Break Down Complex Code: If you're working with intricate logic, try breaking it down into smaller, more manageable chunks. This can help isolate the part where the invalid assignment is occurring.
  • Console Logging for Debugging: Strategically place console.log statements throughout your code to inspect variable values and the flow of your program. This can aid in visualizing the state of your variables at different points.
  • Consider Linting Tools: Tools like ESLint or JSHint can help you identify potential errors and enforce code style guidelines, which might catch these issues early on.

Additional Cautions:

  • Strict vs. Non-Strict Mode: JavaScript has strict mode, which enforces stricter rules on variable declarations and other aspects. Some errors you might encounter in non-strict mode might become SyntaxErrors in strict mode.
  • Asynchronous Code: When dealing with asynchronous code (like using promises or callbacks), be cautious about assigning values before they're available. Understand the timing and flow of your asynchronous operations.

Related Example Codes for "Invalid assignment left-hand side" Errors in JavaScript:

A. document.getElementById Result:

B. const Variables:

Fix the Issue: Depending on the cause, you might need to:

  • Use comparison operators: If you're accidentally using an assignment operator ( = ) in a conditional statement, use the correct comparison operator (like == , === , != , etc.).
  • Avoid read-only assignments: If you're trying to modify a read-only value (like document.getElementById result or a const variable), consider alternative approaches (e.g., modify element content using properties like innerHTML or declare a new variable).
  • Ensure object properties exist: If you're assigning to a non-existent property of an object, check if the property exists before assigning.

Here's a different way to think about it:

Imagine the "Invalid assignment left-hand side" error as a warning sign. It's pointing out a potential problem in your code. By addressing this issue, you'll end up with code that works as intended.

"Errors: Invalid date" is a common error you might encounter in JavaScript code when you try to work with dates but provide invalid data

This error occurs when you use the instanceof operator incorrectly in your JavaScript code. The instanceof operator is used to check whether an object was created by a specific constructor function

"Errors: is not iterable" indicates that you're trying to use a loop or other construct that expects a sequence of values (iterable) on something that JavaScript can't iterate over

JavaScript: JavaScript is a programming language commonly used to create interactive web pages and applications.JSON: JavaScript Object Notation (JSON) is a lightweight data format that resembles JavaScript objects

What it is: This error indicates that JavaScript encountered a malformed (incorrectly formatted) Uniform Resource Identifier (URI) while trying to process a web address or URL

"Errors: Missing initializer in const"What it Means:This error occurs when you declare a variable using the const keyword (used for constants) but don't assign a value to it at the same time

"Missing parenthesis after argument list"Meaning:This error arises in JavaScript when you call a function or method but forget to include the closing parenthesis ')' after the list of arguments you're passing to it

  • Skip to main content
  • Select language
  • Skip to search
  • ReferenceError: invalid assignment left-hand side

ReferenceError .

What went wrong?

There was an unexpected assignment somewhere. This might be due to a mismatch of a assignment operator and a comparison operator , for example. While a single " = " sign assigns a value to a variable, the " == " or " === " operators compare a value.

In the if statement, you want to use a comparison operator ("=="), and for the string concatenation, the plus ("+") operator is needed.

  • Assignment operators
  • Comparison operators

Document Tags and Contributors

  • ReferenceError
  • Introduction
  • Grammar and types
  • Control flow and error handling
  • Loops and iteration
  • Expressions and operators
  • Numbers and dates
  • Text formatting
  • Regular expressions
  • Indexed collections
  • Keyed collections
  • Working with objects
  • Details of the object model
  • Iterators and generators
  • Meta programming
  • JavaScript basics
  • JavaScript technologies overview
  • Introduction to Object Oriented JavaScript
  • A re-introduction to JavaScript
  • JavaScript data structures
  • Equality comparisons and sameness
  • Inheritance and the prototype chain
  • Strict mode
  • JavaScript typed arrays
  • Memory Management
  • Concurrency model and Event Loop
  • References:
  • ArrayBuffer
  • AsyncFunction
  • Float32Array
  • Float64Array
  • GeneratorFunction
  • InternalError
  • Intl.Collator
  • Intl.DateTimeFormat
  • Intl.NumberFormat
  • ParallelArray
  • SIMD.Bool16x8
  • SIMD.Bool32x4
  • SIMD.Bool64x2
  • SIMD.Bool8x16
  • SIMD.Float32x4
  • SIMD.Float64x2
  • SIMD.Int16x8
  • SIMD.Int32x4
  • SIMD.Int8x16
  • SIMD.Uint16x8
  • SIMD.Uint32x4
  • SIMD.Uint8x16
  • SharedArrayBuffer
  • StopIteration
  • SyntaxError
  • Uint16Array
  • Uint32Array
  • Uint8ClampedArray
  • decodeURI()
  • decodeURIComponent()
  • encodeURI()
  • encodeURIComponent()
  • parseFloat()
  • Arithmetic operators
  • Array comprehensions
  • Bitwise operators
  • Comma operator
  • Conditional (ternary) Operator
  • Destructuring assignment
  • Expression closures
  • Generator comprehensions
  • Grouping operator
  • Legacy generator function expression
  • Logical Operators
  • Object initializer
  • Operator precedence
  • Property accessors
  • Spread syntax
  • async function expression
  • class expression
  • delete operator
  • function expression
  • function* expression
  • in operator
  • new operator
  • void operator
  • Legacy generator function
  • async function
  • for each...in
  • try...catch
  • Arguments object
  • Arrow functions
  • Default parameters
  • Method definitions
  • Rest parameters
  • constructor
  • Error: Permission denied to access property "x"
  • InternalError: too much recursion
  • RangeError: argument is not a valid code point
  • RangeError: invalid array length
  • RangeError: precision is out of range
  • RangeError: radix must be an integer
  • RangeError: repeat count must be less than infinity
  • RangeError: repeat count must be non-negative
  • ReferenceError: "x" is not defined
  • ReferenceError: assignment to undeclared variable "x"
  • ReferenceError: deprecated caller or arguments usage
  • ReferenceError: reference to undefined property "x"
  • SyntaxError: "use strict" not allowed in function with non-simple parameters
  • SyntaxError: "x" is not a legal ECMA-262 octal constant
  • SyntaxError: JSON.parse: bad parsing
  • SyntaxError: Malformed formal parameter
  • SyntaxError: Unexpected token
  • SyntaxError: Using //@ to indicate sourceURL pragmas is deprecated. Use //# instead
  • SyntaxError: missing ) after argument list
  • SyntaxError: missing ; before statement
  • SyntaxError: missing ] after element list
  • SyntaxError: missing } after property list
  • SyntaxError: redeclaration of formal parameter "x"
  • SyntaxError: return not in function
  • SyntaxError: test for equality (==) mistyped as assignment (=)?
  • SyntaxError: unterminated string literal
  • TypeError: "x" has no properties
  • TypeError: "x" is (not) "y"
  • TypeError: "x" is not a constructor
  • TypeError: "x" is not a function
  • TypeError: "x" is read-only
  • TypeError: More arguments needed
  • TypeError: invalid Array.prototype.sort argument
  • TypeError: property "x" is non-configurable and can't be deleted
  • TypeError: variable "x" redeclares argument
  • Warning: -file- is being assigned a //# sourceMappingURL, but already has one
  • Warning: JavaScript 1.6's for-each-in loops are deprecated
  • Warning: unreachable code after return statement
  • Lexical grammar
  • Enumerability and ownership of properties
  • Iteration protocols
  • Transitioning to strict mode
  • Template literals
  • Deprecated features
  • ECMAScript 5 support in Mozilla
  • ECMAScript 6 support in Mozilla
  • ECMAScript Next support in Mozilla
  • Firefox JavaScript changelog
  • New in JavaScript 1.1
  • New in JavaScript 1.2
  • New in JavaScript 1.3
  • New in JavaScript 1.4
  • New in JavaScript 1.5
  • New in JavaScript 1.6
  • New in JavaScript 1.7
  • New in JavaScript 1.8
  • New in JavaScript 1.8.1
  • New in JavaScript 1.8.5
  • Documentation:
  • All pages index
  • Methods index
  • Properties index
  • Pages tagged "JavaScript"
  • JavaScript doc status
  • The MDN project

Airbrake logo144-1

  • Get Started

Jan 26, 2017 6:00:03 AM | JavaScript - ReferenceError: invalid assignment left-hand side

Today we examine the invalid assignment error, which is thrown, as the name implies, when code attempts to perform an invalid assignment somewhere.

Next on the list in our extensive JavaScript Error Handling series we're going to examine the Invalid Left-Hand Assignment error in greater detail. The Invalid Left-Hand Assignment error is a sub-object of ReferenceError and is thrown, as the name implies, when code attempts to perform an invalid assignment somewhere.

In this post we'll look at a few code examples to illustrate some common methods of producing an Invalid Left-Hand Assignment error, as well as examine how to handle this error when it rears its ugly head. Let the party begin!

The Technical Rundown

  • All JavaScript error objects are descendants of the  Error  object, or an inherited object therein.
  • The  ReferenceError  object is inherited from the  Error  object.
  • The Invalid Left-Hand Assignment error is a specific type of ReferenceError object.

When Should You Use It?

As one of the simplest JavaScript errors to understand, the Invalid Left-Hand Assignment error appears in only a handful of situations in which code is attempting to pass an assignment incorrectly. While this is generally thought of as a syntactic issue, JavaScript defines this particular assignment error as a ReferenceError, since the engine effectively assumes an assignment to a non-referenced variable is being attempted.

The most common example of an Invalid Left-Hand Assignment error is when attempting to compare a value using a assignment operator (=), rather than using a proper comparison operator (== or ===). For example, here we're attempting to perform a basic comparison of the variable name with the values John or Fred. Unfortunately, we've made the mistake of using the assignment operator =, instead of a comparison operator such as == or ===:

try { var name = 'Bob'; if (name = 'John' || name = 'Fred') { console.log(`${name} returns!`) } else { console.log(`Just ${name} this time.`) } } catch (e) { if (e instanceof ReferenceError) { printError(e, true); } else { printError(e, false); } }

Sure enough, rather than giving us an output, the JavaScript engine produces the expected Invalid Left-Hand Assignment error:

It's worth noting that catching an Invalid Left-Hand Assignment error with a typical try-catch block is particular difficult, because the engine parses the code from inside out, meaning inner code blocks are parsed and executed before outer blocks. Since the issue of using a = assignment operator instead of a == comparison operator means the actual structure of the code is changed from the expected, the outer try-catch fails to be parsed and properly executed. In short, this means Invalid Left-Hand Assignment errors are always "raw", without any simple means of catching them.

Another common method for producing an Invalid Left-Hand Assignment error is when attempting to concatenate a string value onto a variable using the addition assignment += operator, instead of the concatenation operator +. For example, below we're attempting to perform concatenation on the name variable on multiple lines, but we've accidentally used the += operator:

try { var name = 'Bob' += ' Smith';

console.log(`Name is ${name}.`); } catch (e) { if (e instanceof ReferenceError) { printError(e, true); } else { printError(e, false); } }

This isn't the syntax JavaScript expects when concatenating multiple values onto a string, so an Invalid Left-Hand Assignment error is thrown:

To resolve this, we simply need to replace += with the concatenation operator +:

try { var name = 'Bob' + ' Smith';

Now we skip the Invalid Left-Hand Assignment error entirely and get our expected output indicating the full name stored in the name variable:

To dive even deeper into understanding how your applications deal with JavaScript Errors, check out the revolutionary Airbrake JavaScript error tracking tool for real-time alerts and instantaneous insight into what went wrong with your JavaScript code.

Written By: Frances Banks

You may also like.

 alt=

Dec 28, 2016 8:00:56 AM | JavaScript Error Handling - ReferenceError: assignment to undeclared variable “x”

Feb 15, 2017 7:41:35 am | javascript error handling: syntaxerror: "use strict" not allowed in function with non-simple parameters, dec 9, 2016 5:00:00 am | javascript error handling - rangeerror: argument is not a valid code point.

© Airbrake. All rights reserved. Terms of Service | Privacy Policy | DPA

The Linux Code

Demystifying JavaScript‘s "Invalid Assignment Left-Hand Side" Error

Assignment operations are fundamental in JavaScript – we use them all the time to assign values to variables. However, occasionally you may come across a confusing error:

This "Invalid Assignment Left-Hand Side" error occurs when you try to assign a value to something that JavaScript will not allow. At first glance, this doesn‘t seem to make sense – isn‘t assignment valid in JS?

In this comprehensive guide, we‘ll demystify exactly when and why this error occurs and equip you with the knowledge to resolve it.

Assignment and Equality Operators in JavaScript

To understand this error, we first need to understand the role of assignment and equality operators in JavaScript.

The Assignment Operator

The assignment operator in JS is the single equals sign = . It is used to assign a value to a variable, like so:

This stores the value 10 in the variable x . Simple enough!

The Equality Operator

The equality operator == checks if two values are equal to each other. For example:

The equality operator == is different from the assignment operator = – it compares values rather than assigning them.

Mixing up assignment and equality is a common source of bugs in JS programs.

Immutable vs Mutable Values in JavaScript

In JavaScript, some values are immutable – they cannot be changed or reassigned. The most common immutable values are:

  • Constants like Math.PI
  • Primitive values like undefined or null

Trying to reassign an immutable value will lead to our error.

On the other hand, mutable values like variables can be reassigned:

Keeping mutable vs immutable values in mind is key to avoiding "Invalid Assignment" errors.

When and Why This Error Occurs

There are two main situations that cause an "Invalid Assignment Left-Hand Side" error:

1. Attempting to Mutate an Immutable Constant

Immutable constants in JavaScript cannot be reassigned. For example:

Core language constants like Math.PI are immutable. Trying to alter them with the assignment operator = will throw an error.

You‘ll also get an error trying to reassign a declared const variable:

2. Accidentally Using Assignment = Instead of Equality ==

Another common source of this error is accidentally using the single = assignment operator when you meant to use the == equality operator:

This can lead to logical errors, as you are assigning 10 to x rather than checking if x equals 10 .

According to a 2020 survey, over 40% of JavaScript developers have made this mistake that led to bugs in their code.

Example Error Message

When an invalid assignment occurs, you‘ll see an error like:

This tells us there is an invalid assignment on line 2 of myScript.js . The full error message gives us an important clue that an assignment operation is causing the issue.

Let‘s look at a full code example:

Running this would result in our error:

Now that we‘ve seen the error, let‘s walk through debugging techniques.

Debugging an Invalid Assignment

When the "Invalid Assignment Left-Hand Side" error appears, follow these steps:

  • Identify the exact line causing the issue from the error stack trace
  • Check if the line is trying to reassign a constant value
  • If so, use a variable instead of a constant
  • Otherwise, verify = is intended and not == for equality

Let‘s demonstrate with our code example:

The error said line 2 was invalid, so we examine it:

Aha! We‘re trying to assign to the constant PI . Since constants are immutable, this causes an error.

To fix, we need to use a mutable variable instead:

That‘s all there is to debugging simple cases like this. Now let‘s look at some tips to avoid the problem altogether.

Avoiding the "Invalid Assignment" Error

With knowledge of assignments and equality in JavaScript, you can avoid these errors with:

  • Using const for true constants – Avoid reassignment by default
  • Declaring variables rather than trying to mutate language builtins
  • Take care with = vs == – Understand what each one does
  • Use a linter – Catches many invalid assignments before runtime
  • Improve testing – Catch assumption errors around assignments early
  • Refactor code – Make invalid assignments impossible through design

Avoiding mutations and validating equality logic will steer you clear of this problem.

Why This Error Matters

At first glance, the "Invalid Assignment Left-Hand Side" error may seem minor. However, it points to flawed assumptions around assignments and equality in JavaScript that can cause major issues down the line.

That‘s why understanding this error is about more than just fixing that one line of code. It represents a milestone in solidifying your mental models around immutable values, variables, assignment and equality in JavaScript.

Making assignments consciously and validating them through linting and testing will level up your code quality and make you a more proficient JS developer.

Key Takeaways

To recap, the core takeaways around the "Invalid Assignment Left-Hand Side" error are:

  • It occurs when trying to assign a value to a constant or immutable value
  • Accidentally using = instead of == for equality checks is another common cause
  • The error message directly states "invalid assignment" which provides a clue
  • Debug by checking for assignment to constants or verifying equality checks
  • Declare variables and use const properly to avoid reassignment errors
  • Differentiate between = assignment and == equality checks

Learning to debug and avoid this error will improve your fundamental JavaScript skills. With time, you‘ll handle invalid assignments with ease!

Dealing with "Invalid Assignment Left-Hand Side" errors may seem cryptic initially. But by leveraging the error message itself and understanding assignments in JavaScript, you can swiftly resolve them.

Immutable values and equality logic are at the heart of these errors. With care and awareness around assignments, you can sidestep these issues in your code going forward.

Debugging and resolving errors like this are an important part of the JavaScript learning journey. Each one makes you a little wiser! So don‘t get discouraged when you run into an "Invalid Assignment" error. Leverage the techniques in this guide to level up your skills.

You maybe like,

Related posts, "what‘s the fastest way to duplicate an array in javascript".

As a fellow JavaScript developer, you may have asked yourself this same question while building an application. Copying arrays often comes up when juggling data…

1 Method: Properly Include the jQuery Library

As a JavaScript expert and editor at thelinuxcode.com, I know first-hand how frustrating the "jQuery is not defined" error can be. This single error can…

A Beginner‘s Guide to Formatting Decimal Places in JavaScript

As a web developer, you‘ll frequently run into situations where you need to display nice, cleanly formatted numbers in your interfaces. Have you ever had…

A Complete Guide to Dynamic DOM Manipulation with JavaScript‘s appendChild()

As a Linux developer building modern web applications, being able to efficiently interact with the DOM (Document Object Model) using JavaScript is a crucial skill.…

A Complete Guide to Dynamically Adding Properties in JavaScript

As an experienced JavaScript developer, I often get asked about the different ways to add properties to objects in JavaScript. While this may seem like…

A Complete Guide to Dynamically Changing Image Sources with JavaScript

This comprehensive tutorial explains how to change image sources dynamically in JavaScript. We‘ll cover the ins and outs of swapping images on the fly using…

  • DSA with JS - Self Paced
  • JS Tutorial
  • JS Exercise
  • JS Interview Questions
  • JS Operator
  • JS Projects
  • JS Examples
  • JS Free JS Course
  • JS A to Z Guide
  • JS Formatter

JavaScript ReferenceError – Invalid assignment left-hand side

This JavaScript exception invalid assignment left-hand side occurs if there is a wrong assignment somewhere in code. A single “=” sign instead of “==” or “===” is an Invalid assignment.

Error Type:

Cause of the error: There may be a misunderstanding between the assignment operator and a comparison operator.

Basic Example of ReferenceError – Invalid assignment left-hand side, run the code and check the console

Example 1: In this example, “=” operator is misused as “==”, So the error occurred.

Example 2: In this example, the + operator is used with the declaration, So the error has not occurred.

Output: 

Please Login to comment...

Similar reads.

  • Web Technologies
  • JavaScript-Errors
  • Best Twitch Extensions for 2024: Top Tools for Viewers and Streamers
  • Discord Emojis List 2024: Copy and Paste
  • Best Adblockers for Twitch TV: Enjoy Ad-Free Streaming in 2024
  • PS4 vs. PS5: Which PlayStation Should You Buy in 2024?
  • Full Stack Developer Roadmap [2024 Updated]

Improve your Coding Skills with Practice

 alt=

What kind of Experience do you want to share?

SyntaxError: invalid assignment left-hand side

The JavaScript exception "invalid assignment left-hand side" occurs when there was an unexpected assignment somewhere. It may be triggered when a single = sign was used instead of == or === .

SyntaxError or ReferenceError , depending on the syntax.

What went wrong?

There was an unexpected assignment somewhere. This might be due to a mismatch of an assignment operator and an equality operator , for example. While a single = sign assigns a value to a variable, the == or === operators compare a value.

Typical invalid assignments

In the if statement, you want to use an equality operator ( === ), and for the string concatenation, the plus ( + ) operator is needed.

Assignments producing ReferenceErrors

Invalid assignments don't always produce syntax errors. Sometimes the syntax is almost correct, but at runtime, the left hand side expression evaluates to a value instead of a reference , so the assignment is still invalid. Such errors occur later in execution, when the statement is actually executed.

Function calls, new calls, super() , and this are all values instead of references. If you want to use them on the left hand side, the assignment target needs to be a property of their produced values instead.

Note: In Firefox and Safari, the first example produces a ReferenceError in non-strict mode, and a SyntaxError in strict mode . Chrome throws a runtime ReferenceError for both strict and non-strict modes.

Using optional chaining as assignment target

Optional chaining is not a valid target of assignment.

Instead, you have to first guard the nullish case.

  • Assignment operators
  • Equality operators

© 2005–2023 MDN contributors. Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Invalid_assignment_left-hand_side

Invalid left-hand side in assignment expression

Hello. I am attempting to create a self-generating biology question that randomly generates three numbers for the problem question, then asks a yes or no question. When I was attempting to create the function that checks for the answer to the question and compared it to the student input, I get the “Invalid left-hand side in assignment expression”

My code is here, line 33 in the JavaScript window: https://codepen.io/KDalang/pen/OJpEdQB

Here is the specific line in question: if (chiTotal <= 3.841 && input=“Yes”) What did I do wrong?

= is assignment of a value to a variable == is weak comparison (with type coercion) === is strong comparison (probably what you want)

Hey thanks for the quick reply! I actually want it to be a “less than or equal to” and I used <=. <== and <=== don’t do anything either.

Edit: Nevermind, I understand now.

Do you try to compare values or do you try to assign a value?

Oh my gosh! Sorry its 2a.m. over here I understand what you and JeremyLT are saying now. Thanks so much!

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.

Stack Exchange Network

Stack Exchange network consists of 183 Q&A communities including Stack Overflow , the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

what is the wrong in my code it showing error " Invalid left-hand side in assignment "?

javascript error invalid left hand side in assignment

it is showing error Invalid left-hand side in assignment? what is wrong in this code can any once help ?

Community's user avatar

  • 1 Don't submit code in a image- it makes it harder for other users to run that code, or use it in an answer. See the formatting guide . –  battery.cord Commented Mar 24, 2017 at 13:03
  • remove a==1 and similar. it is not needed –  Ashwani Commented Mar 24, 2017 at 14:07

2 Answers 2

The problem is that you have expressions returning true , which you then attempt to assign values.

What you meant to do is:

The switch statement handles the comparisons for you. case 1 is the case where a is equal to 1.

Also, you want to get the element with the id "number", and instead of switch(a) , you want switch(+a) .

martin's user avatar

Problem is with your JavaScript. Syntax for Switch case is wrong. This is how it should be:

JavaScript documentation

Rohit Mourya's user avatar

  • @popoornimapuligadda replace your switch case code with above code. –  Rohit Mourya Commented Mar 24, 2017 at 13:03

You must log in to answer this question.

Not the answer you're looking for browse other questions tagged javascript jquery ..

  • The Overflow Blog
  • The evolution of full stack engineers
  • One of the best ways to get value for AI coding tools: generating tests
  • Featured on Meta
  • Bringing clarity to status tag usage on meta sites
  • Join Stack Overflow’s CEO and me for the first Stack IRL Community Event in...

Hot Network Questions

  • Flats on gravel with GP5000 - what am I doing wrong?
  • How much could gravity increase before a military tank is crushed
  • Are there epistemic vices?
  • How solid is the claim that Alfred Nobel founded the Nobel Prize specifically because of his invention of dynamite?
  • How cheap would rocket fuel have to be to make Mars colonization feasible (according to Musk)?
  • Why does ATSAM3X8E have two separate registers for setting and clearing bits?
  • Correct anonymization of submission using Latex
  • subtle racism in the lab
  • Please help me identify my Dad's bike collection (80's-2000's)
  • Does this policy mean that my work has flawed password storage?
  • Textile Innovations of Pachyderms: Clothing Type
  • Did Queen (or Freddie Mercury) really not like Star Wars?
  • Face intersect while keeping objects separate
  • Is the product of two NONZERO elements independently drawn from a prime field uniformly distributed?
  • using gnu date to set a time and format and subtract
  • Is there a name for this condition on monomorphisms?
  • Engaging students in the beauty of mathematics
  • Bathroom fan venting options
  • I want to be a observational astronomer, but have no idea where to start
  • Can we use "day and night time" instead of "day and night"?
  • What is the least number of colours Peter could use to color the 3x3 square?
  • Starting with 2014 "+" signs and 2015 "−" signs, you delete signs until one remains. What’s left?
  • Why do "modern" languages not provide argv and exit code in main?
  • Analog story - US provides food machines to other nations, with hidden feature

javascript error invalid left hand side in assignment

  • Mozilla Connect
  • Discussions
  • Invisible JS Error: "Invalid left-hand side of ass...
  • Subscribe to RSS Feed
  • Mark Topic as New
  • Mark Topic as Read
  • Float this Topic for Current User
  • Printer Friendly Page

Invisible JS Error: "Invalid left-hand side of assignment"

serged76

  • Mark as New
  • Report Inappropriate Content

‎09-09-2024 02:38 AM

  • All forum topics
  • Previous Topic

javascript error invalid left hand side in assignment

never-displayed

  • Poor interface in version Thunderbird 128.1.1esr in Discussions 08-28-2024
  • invisible totals on pdf attachment in Discussions 02-05-2024
  • Invisible Thunderbird in Win 11 in Discussions 11-04-2023
  • Word wrap in new messages Thunderbird 115.4.1 in Discussions 11-03-2023
  • Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers
  • Advertising & Talent Reach devs & technologists worldwide about your product, service or employer brand
  • OverflowAI GenAI features for Teams
  • OverflowAPI Train & fine-tune LLMs
  • Labs The future of collective knowledge sharing
  • About the company Visit the blog

Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Get early access and see previews of new features.

Syntax Error: Invalid left-hand side in assignment expression

I have received data from backend which contains a student object.

The student contains a field named grade . I would like to explicitly update that value of the student object in my code:

When I run my app, I ended up with error "Invalid left-hand side in assignment expression" for the code showed above. Why? What is the correct way to update that value then?

=== About using the optional syntax student?.grade ===

The reason why I use optional syntax is that the student at the beginning is undefined or null until it is loaded. If I remove the optional ? I would end up with another error "undefined is not an object" when evaluating student.grade .

  • react-native

user842225's user avatar

  • @SuperStormer please see my update, I explained why using optional syntax. –  user842225 Commented May 27, 2021 at 11:57
  • you can't just wrap the whole thing inside an if (student) { const {grade} .... } ? –  user3282374 Commented May 27, 2021 at 12:00
  • "the student at the beginning is undefined or null until it is loaded" And what would you expect to happen if you try to assign to student?.grade when student is null ? Should it silently skip the assignment? Should it populate student with a new object? Optional chaining is for accessing properties, not assigning to them. –  Felix Kling Commented May 27, 2021 at 12:01
  • try with student! –  Thiluxan Commented May 27, 2021 at 12:04
  • @Thiluxan that's typescript (non-null assertion operator), not javascript. –  user3282374 Commented May 27, 2021 at 12:06

Optional chaining should be used when reading the value, not when assigning it. You can update the piece of code to this:

Edit: Mistake pointed out by Felix King

qaismakani's user avatar

  • I think it should just be if (student) . Currently you are only assigning to student.grade if student.grade is already set. –  Felix Kling Commented May 27, 2021 at 12:03
  • You should probably provide a reference why optional chaining is for retrieval only. –  user3282374 Commented May 27, 2021 at 12:04

Your Answer

Reminder: Answers generated by artificial intelligence tools are not allowed on Stack Overflow. Learn more

Sign up or log in

Post as a guest.

Required, but never shown

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy .

Not the answer you're looking for? Browse other questions tagged javascript reactjs react-native or ask your own question .

  • The Overflow Blog
  • The evolution of full stack engineers
  • One of the best ways to get value for AI coding tools: generating tests
  • Featured on Meta
  • Bringing clarity to status tag usage on meta sites
  • Join Stack Overflow’s CEO and me for the first Stack IRL Community Event in...
  • Feedback requested: How do you use tag hover descriptions for curating and do...
  • Staging Ground Reviewer Motivation
  • What does a new user need in a homepage experience on Stack Overflow?

Hot Network Questions

  • Analog story - US provides food machines to other nations, with hidden feature
  • Why does each leg of my 240V outlet measure 125V to ground, but 217V across the hot wires?
  • How to fold or expand the wingtips on Boeing 777?
  • Thread-safe write-efficient register() method for a Load balancer
  • How much could gravity increase before a military tank is crushed
  • Is there any benefit to declaring an index that contains a primary key as unique?
  • Electromagnetic Eigenvalue problem in FEM yielding spurious solutions
  • The quest for a Wiki-less Game
  • How do you make the vacuum seal on a glass jar?
  • How would the following changes affect this monster's CR?
  • How can I power 28VDC devices from a 24VDC system?
  • Is there mathematical significance to the LaGuardia floor tiles?
  • Consistency-proof of ZFC
  • Is this map real?
  • Curve factor at position
  • Remove spaces from the 3rd line onwards in a file on linux
  • ESTA for dual national: what can happen if I lie about being American?
  • I want to be a observational astronomer, but have no idea where to start
  • Guesstimate a multiple choice exam
  • How cheap would rocket fuel have to be to make Mars colonization feasible (according to Musk)?
  • If a friend hands me a marijuana edible then dies of a heart attack am I guilty of felony murder?
  • Why do "modern" languages not provide argv and exit code in main?
  • package accents seems to be incompatible with Unicode-math
  • What is vi command package?

javascript error invalid left hand side in assignment

IMAGES

  1. javascript

    javascript error invalid left hand side in assignment

  2. javascript

    javascript error invalid left hand side in assignment

  3. JavaScript ReferenceError

    javascript error invalid left hand side in assignment

  4. Invalid left-hand side in assignment in JavaScript [Solved]

    javascript error invalid left hand side in assignment

  5. jQuery : Building HTML table in javascript, getting "ReferenceError

    javascript error invalid left hand side in assignment

  6. JavaScript ReferenceError

    javascript error invalid left hand side in assignment

VIDEO

  1. Uttarakhand Open University Assignment invalid login problem असाइनमेंट पोर्टल में लोगिन नही हो रहा😞

  2. Javascript Error IPython is not defined in JupyterLab

  3. C++ Operators & Expression

  4. Prestashop 1-Click Upgrade

  5. Assignment Operator in Java

  6. Rejected VIP (Voiid Chronicles) Fanchart

COMMENTS

  1. SyntaxError: invalid assignment left-hand side

    SyntaxError: invalid assignment left-hand side - MDN Web Docs

  2. javascript

    7. The problem is that the assignment operator, =, is a low-precedence operator, so it's being interpreted in a way you don't expect. If you put that last expression in parentheses, it works: for(let id in list)(. (!q.id || (id == q.id)) &&. (!q.name || (list[id].name.search(q.name) > -1)) &&. (result[id] = list[id]) ); The real problem is ...

  3. Invalid left-hand side in assignment in JavaScript [Solved]

    The engine interprets the single equal sign as an assignment and not as a comparison operator. We use a single equals sign when assigning a value to a variable.

  4. javascript

    ReferenceError: Invalid left-hand side in assignment

  5. How to fix SyntaxError

    When you attempt to assign a value to a literal like a number, string or boolean it will result in SyntaxError: Invalid Assignment Left-Hand Side. Example: 5 = x; Output. SyntaxError: invalid assignment left-hand side Resolution of error

  6. How to fix SyntaxError: invalid assignment left-hand side

    SyntaxError: invalid assignment left-hand side or SyntaxError: Invalid left-hand side in assignment Both errors are the same, and they occured when you use the single equal = sign instead of double == or triple === equals when writing a conditional statement with multiple conditions.

  7. Fixing Assignment Errors in JavaScript: 'Invalid left-hand side'

    In simpler terms, you're trying to put data (the value on the right side of the equal sign) into a location (the left side of the equal sign) that doesn't accept it. Common Causes: Here are some frequent scenarios that lead to this error:

  8. ReferenceError: invalid assignment left-hand side

    There was an unexpected assignment somewhere. This might be due to a mismatch of a assignment operator and a comparison operator, for example. While a single " = " sign assigns a value to a variable, the " == " or " === " operators compare a value.

  9. JavaScript

    Today we examine the invalid assignment error, which is thrown, as the name implies, when code attempts to perform an invalid assignment somewhere.

  10. Demystifying JavaScript's "Invalid Assignment Left-Hand Side" Error

    There are two main situations that cause an "Invalid Assignment Left-Hand Side" error: 1. Attempting to Mutate an Immutable Constant. Immutable constants in JavaScript cannot be reassigned. ... assignment and equality in JavaScript. Making assignments consciously and validating them through linting and testing will level up your code quality ...

  11. JavaScript ReferenceError

    JavaScript ReferenceError - Invalid assignment left-hand side

  12. Errors: Invalid Assignment Left-hand Side

    SyntaxError: invalid assignment left-hand side. The JavaScript exception "invalid assignment left-hand side" occurs when there was an unexpected assignment somewhere. For example, a single = sign was used instead of == or ===.

  13. Invalid left-hand side in assignment expression

    Hello. I am attempting to create a self-generating biology question that randomly generates three numbers for the problem question, then asks a yes or no question. When I was attempting to create the function that checks for the answer to the question and compared it to the student input, I get the "Invalid left-hand side in assignment expression" My code is here, line 33 in the JavaScript ...

  14. what is the wrong in my code it showing error " Invalid left-hand side

    Tour Start here for a quick overview of the site Help Center Detailed answers to any questions you might have Meta Discuss the workings and policies of this site

  15. ReferenceError: invalid assignment left-hand side

    JavaScript の例外 "invalid assignment left-hand side" は、どこかで予想外の代入が行われたときに発生します。例えば、単一の "=" の記号が "==" や "===" の代わりに使用された場合です。

  16. Invisible JS Error: "Invalid left-hand side of assignment"

    This at least makes it hard to find and debug the JS error, leading to waste of developer's time. In the same Chrome (my current is 128..6613.120 (Official Build) (arm64) ), it says (in developer-friendly manner):

  17. ReferenceError: invalid assignment left-hand side

    ReferenceError: invalid assignment left-hand side - JavaScript

  18. Javascript error : invalid assignment left-hand side

    For some reason, I keep getting the following error: invalid assignment left-hand side at 9: line 10. My code is pretty simple and looks spot on AFAICT. Please review and tell me I'm not crazy. (Or tell me I am, but you have a solution :)) function jsNetworkAccount() {. // Get a reference to each check box. var f1 = getField("cbNetworkNotNeeded");

  19. ReferenceError: invalid assignment left-hand side

    ReferenceError: invalid assignment left-hand side; SyntaxError: invalid BigInt syntax; SyntaxError: invalid capture group name in regular expression; SyntaxError: invalid character in class in regular expression; SyntaxError: invalid class set operation in regular expression; SyntaxError: invalid decimal escape in regular expression

  20. javascript

    3. I have received data from backend which contains a student object. The student contains a field named grade. I would like to explicitly update that value of the student object in my code: const {grade} = calculateNewGrade(student); // Syntax Error: Invalid left-hand side in assignment expression.