In javascript, what do multiple equal signs mean?

2019-03-17 22:36发布

问题:

This question already has an answer here:

  • Javascript a=b=c statements 6 answers

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

var a = b = c;

回答1:

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;


回答2:

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;


回答3:

  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


回答4:

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