JavaScript Easy technical 0 views 2 min read

What is the difference between Shallow and Deep copy?

Peer-reviewed by HireXTech Technical Panel Updated for 2025/2026 hiring Editorial standards
Practise this track
Interviewer Expectations for this Question
01
Core Competency

Assesses fundamental understanding of JavaScript conventions, runtime behavior, and memory/performance considerations.

02
Evaluation Criteria

Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.

Comprehensive Model Answer Verified Solution

There are two ways to copy an object,

Shallow Copy:
Shallow copy is a bitwise copy of an object. A new object is created that has an exact copy of the values in the original object. If any of the fields of the object are references to other objects, just the reference addresses are copied i.e., only the memory address is copied.

Example

      var empDetails = {
        name: "John",
        age: 25,
        expertise: "Software Developer",
      };
      

to create a duplicate

      var empDetailsShallowCopy = empDetails; //Shallow copying!
      

if we change some property value in the duplicate one like this:

      empDetailsShallowCopy.name = "Johnson";
      

The above statement will also change the name of empDetails, since we have a shallow copy. That means we're losing the original data as well.

Deep copy:
A deep copy copies all fields, and makes copies of dynamically allocated memory pointed to by the fields. A deep copy occurs when an object is copied along with the objects to which it refers.

Example

      var empDetails = {
        name: "John",
        age: 25,
        expertise: "Software Developer",
      };
      

Create a deep copy by using the properties from the original object into new variable

      var empDetailsDeepCopy = {
        name: empDetails.name,
        age: empDetails.age,
        expertise: empDetails.expertise,
      };
      

Now if you change empDetailsDeepCopy.name, it will only affect empDetailsDeepCopy & not empDetails

Candidate Response Strategy & Interview Tips

  1. Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
  2. Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
  3. Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
  4. Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.
Related Topics & Skills
Spotted an error or have an alternative solution?