6. Top 5 JavaScript Tricky questions
// question 1
let a = {};
let b = { key: "b" };
let c = { key: "c" };
a[b] = 123;
a[c] = 456;
console.log(a[b]);
// question 2
let obj1 = { key: "value" };
let obj2 = obj1;
let obj3 = obj2;
obj1.key = "new value";
obj2 = { key: "another value" };
console.log(obj1.key, obj2.key, obj3.key);
// question 3
const obj = {
a: "foo",
b: function () {
console.log(this.a);
},
};
const c = obj.b;
obj.b();
c();
// question 4
const x = { foo: 1 };
const y = { foo: 2 };
function addFoo(obj) {
return obj.foo + 1;
}
console.log(addFoo(x));
console.log(addFoo(y));
// question 5
const arr = [1, 2, 3, 4, 5];
for (var i = 0; i < arr.length; i++) {
setTimeout(function () {
console.log(i);
}, 1000);
}