Đoạn code sau sẽ có kết quả:
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
);
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
);
Trả lời:
Đáp án đúng: C
Đoạn code trên thực hiện việc deep clone object `a` bằng cách sử dụng `JSON.stringify` và `JSON.parse`. Tuy nhiên, cần lưu ý rằng `JSON.stringify` sẽ chuyển đổi `Date` object thành string theo chuẩn ISO 8601. Khi `JSON.parse` được sử dụng, string này sẽ được parse lại thành một `Date` object mới. Vì vậy, `a.dateField` và `b.dateField` là hai object khác nhau, mặc dù chúng có cùng giá trị thời gian. Do đó, phép so sánh `a.dateField === b.dateField` sẽ trả về `false`. Các trường còn lại là kiểu nguyên thủy (string, number) nên khi so sánh bằng `===` sẽ trả về `true` nếu giá trị bằng nhau.
Phân tích từng dòng console.log:
- `a.stringField === b.stringField`: `true` (so sánh string)
- `a.numberField === b.numberField`: `true` (so sánh number)
- `a.dateField === b.dateField`: `false` (so sánh object Date, hai object khác nhau)
- `a.nestedField.field === b.nestedField.field`: `true` (so sánh string)
Vậy, kết quả cuối cùng là `true true false true`
Tổng hợp 500 câu hỏi trắc nghiệm Javascript có đáp án đầy đủ nhằm giúp các bạn dễ dàng ôn tập lại toàn bộ các kiến thức.
50 câu hỏi 60 phút
Câu hỏi liên quan

FORM.08: Bộ 130+ Biểu Mẫu Thống Kê Trong Doanh Nghiệp

FORM.07: Bộ 125+ Biểu Mẫu Báo Cáo Trong Doanh Nghiệp

FORM.06: Bộ 320+ Biểu Mẫu Hành Chính Thông Dụng

FORM.05: Bộ 330+ Biểu Mẫu Thuế - Kê Khai Thuế Mới Nhất

FORM.04: Bộ 240+ Biểu Mẫu Chứng Từ Kế Toán Thông Dụng
