20

I saw this code somewhere, but what does it mean? (all a, b, c are defined previously)

var a = b = c;
Maria
  • 3,455
  • 7
  • 34
  • 47

4 Answers4

14

It quickly assigns multiple variables to a single value.

In your example, a and b are now equal set to the value of c.

It's also often used for a mass assign of null to clean up.

a = b = c = d = null;
Alex Wayne
  • 178,991
  • 47
  • 309
  • 337
0

It's a shorthand for:

var a;
var b;
b=c;
a=b;

It's meant as a combination of assigning the same value to two or more other variables, and declaring these variables in local scope at the same time.

You can also use this syntax independently of the var declaration:

var a;
var b;
a=b=c;
Wolfgang Stengel
  • 2,867
  • 1
  • 17
  • 22
0
  1. Assign c to b.
  2. Assign b to a.

So if I say var a = b = 1;

>>> var a = b = 1;
undefined
>>> a
1
>>> b
1
Doggo
  • 115
  • 2
  • 5
0

This means a, b and c are the same reference.

For example:

var c = {hello: "world"};
var a = b = c;

// now all three variables are the same object
friedi
  • 4,350
  • 1
  • 13
  • 19