(廣告,請勿遮蔽。)

測驗 » 物件

1. 物件文字

const obj = {
  true: 'a',
  ['true']: 'b',
  [true]: 'c',
};
const result = Object.keys(obj).length;

會發生什麼事?

2. 計算屬性金鑰 (1/6)

const foo = 'bar';
const obj = {
  foo: 'a',
  [foo]: 'b',
};
const result = obj.foo;

會發生什麼事?

3. 計算屬性金鑰 (2/6)

const foo = 'bar';
const obj = {
  foo: 'a',
  [foo]: 'b',
};
const result = obj.bar;

會發生什麼事?

4. 計算屬性金鑰 (3/6)

const foo = 'bar';
const obj = {
  foo: 'a',
  [foo]: 'b',
};
const result = obj[foo];

會發生什麼事?

5. 計算屬性金鑰 (4/6)

const foo = 'bar';
const obj = {
  foo: 'a',
  [foo]: 'b',
};
const result = obj[bar];

會發生什麼事?

6. 計算屬性金鑰 (5/6)

const foo = 'bar';
const obj = {
  foo: 'a',
  [foo]: 'b',
};
const result = obj['foo'];

會發生什麼事?

7. 計算屬性金鑰 (6/6)

const foo = 'bar';
const obj = {
  foo: 'a',
  [foo]: 'b',
};
const result = obj['bar'];

會發生什麼事?

8. 遍歷物件 (1/4)

const symbol1 = Symbol('symbol1');
const symbol2 = Symbol('symbol2');

const obj = {
  name1: 0,
  [symbol1]: 0,
};
Object.defineProperties(obj, {
  name2: { enumerable: false, value: 0 },
  [symbol2]: { enumerable: false, value: 0 },
});

const result = Object.keys(obj);

結果是什麼?

9. 遍歷物件 (2/4)

const symbol1 = Symbol('symbol1');
const symbol2 = Symbol('symbol2');

const obj = {
  name1: 0,
  [symbol1]: 0,
};
Object.defineProperties(obj, {
  name2: { enumerable: false, value: 0 },
  [symbol2]: { enumerable: false, value: 0 },
});

const result = Reflect.ownKeys(obj);

結果是什麼?

10. 遍歷物件 (3/4)

const symbol1 = Symbol('symbol1');
const symbol2 = Symbol('symbol2');

const obj = {
  name1: 0,
  [symbol1]: 0,
};
Object.defineProperties(obj, {
  name2: { enumerable: false, value: 0 },
  [symbol2]: { enumerable: false, value: 0 },
});

const result = Object.getOwnPropertyNames(obj);

結果是什麼?

11. 遍歷物件 (4/4)

const symbol1 = Symbol('symbol1');
const symbol2 = Symbol('symbol2');

const obj = {
  name1: 0,
  [symbol1]: 0,
};
Object.defineProperties(obj, {
  name2: { enumerable: false, value: 0 },
  [symbol2]: { enumerable: false, value: 0 },
});

const result = Object.getOwnPropertySymbols(obj);

結果是什麼?

12. 呼叫方法

const jane = {
  name: 'Jane',
  hello() {
    return `Hello ${this.name}!`;
  },
};
const func = jane.hello;

下列哪一種呼叫 obj.hello 的方式會運作?

13. 原型鏈

const proto = { prop: 'a' };
const obj = Object.create(proto);

obj.prop = 'b';

proto.prop 是什麼?

14. 原型鏈

const proto = {
  foo: 'p',
  logFoo() {
    console.log(this.foo);
  }
};
const obj = {
  foo: 'o',
  __proto__: proto,  
};

proto.logFoo.call(obj);
proto.logFoo.call(proto);

會發生什麼事?


正確答案:0 個中 0 個