const a = {};
const b = { key: ‘b’ };
const c = { key: ‘c’ };
a = 123;
a[c] = 456;
console.log(a);
Đoạn code sẽ cho kết quả
A. 123
B. 456
C. undefined
D. ReferenceError
Hướng dẫn
Chọn B là đáp án đúng
Xem lời giải
Xem lời giải
Tất cả các keys của một object đểu được tự động chuyển thành string (trừ Symbol).
Khi một object chuyển sang string, nó có giá trị “[object Object]”, vậy a = 123 có thể viết thành a[“object Object”] = 123, tương tự với a[c] = 456 sẽ là a[“object Object”] = 456.
const a = {
stringField: ‘Joe’,
nestedField: { field: ‘Nested’ },
functionField: () => ‘aReturn’
};
const b = Object.assign({}, a);
b.stringField = ‘Bob’;
b.nestedField.field = ‘Changed’;
b.functionField = () => ‘bReturn’;
console.log(
A.stringField,
A.nestedField.field,
A.functionField()
);
Cho đoạn code sau, kết quả là:
A. Joe Nested aReturn
B. Bob Changed bReturn
C. Joe Changed aReturn
D. Bob Nested bReturn
Hướng dẫn
Chọn C là đáp án đúng
Xem lời giải
Xem lời giải
b = Object.assign({},a); sẽ thực hiện một shallow copy trên object a, bất kỳ thuộc tính nào của b là object đều tham chiếu đến cùng thuộc tính trong a. Vì vậy khi chúng ta thay đổi nested field của b, thì nested field của a cũng thay đổi theo.
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
);
Đ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.