DEV Community

Akshay Mandliya
Akshay Mandliya

Posted on

3

Advance JS Quiz Series (Part-1)

1. What's the output?
let c = { greeting: 'Hey!' };
let d;

d = c;
c.greeting = 'Hello';
console.log(d.greeting);
Enter fullscreen mode Exit fullscreen mode
  • A: Hello
  • B: Hey!
  • C: undefined
  • D: ReferenceError
  • E: TypeError

Comment your Answer Below

Top comments (6)

Collapse
 
hermannp profile image
hermann-p

As c is no primitive, d = c sets the value of d to the same reference pointer that references c.
That means c.greeting = ... means "lookup the object referenced by c and mutate its value".
As c and d are only references to the same object, the Output is, of course, 'Hello'.
Everyone confused by this behavior should start looking into the basics of a functional programming style ;)

Collapse
 
quanptit18 profile image
Bùi Hồng Quân

A: Hello

Collapse
 
akshaydatacode profile image
Akshay Mandliya

correct

Collapse
 
niewview profile image
NiewView

A. Hello

Collapse
 
akshaydatacode profile image
Akshay Mandliya

correct answer

Collapse
 
studiospindle profile image
Remi Vledder

So this would be a example of "Pass by reference"?

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay