const a = { stringField: 'Joe', numberField: 123, dateField: new Date('1995-12-17T03:24:00'), nestedField: { field: 'Nested' } }; const

Xuân Mai

New member
const a = {
stringField: 'Joe',
numberField: 123,
dateField: new Date('1995-12-17T03:24:00'),
nestedField: { field: 'Nested' }
};
const b = JSON.parse(JSON.stringify(a));
console.log(
A.stringField === b.stringField,
A.numberField === b.numberField,
A.dateField === b.dateField,
A.nestedField.field === b.nestedField.field
);</blockquote>
Đoạn code sau sẽ có kết quả:
A. true true true true
B. true true true false
C. true true false true
D. false false false false
 
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
b = JSON.parse(JSON.stringify(a)) sẽ thực hiện deep copy trên object a. Tất cả các thuộc tính là các kiểu dữ liệu nguyên thủy (Boolean, String, Number) sẽ được copy một cách chính xác, tuy nhiên đối với các thuộc tính có giá trị không phải là giá trị JSON (Date, undefined, Function, và không phải kiểu dữ liệu nguyên thủy) sẽ không được copy đúng. Trong ví dụ trên, object Date sẽ được chuyển đổi sang string, chúng ta có thể xem thêm về JSON.stringify để hiểu rõ hơn.