Câu hỏi phỏng vấn Javascript
Câu hỏi

Hãy cho biết kết quả đoạn code sau?

Câu trả lời

javascript Copy
  const shape = {
    radius: 10,
    diameter() {
      return this.radius * 2;
    },
    perimeter: () => 2 * Math.PI * this.radius,
  };
  shape.diameter();
  shape.perimeter();
  • A: 20 and 62.83185307179586
  • B: 20 and NaN
  • C: 20 and 63
  • D: NaN and 63

Đáp án: B

Chú ý rằng giá trị diameter là một hàm thông thường, còn perimeter là một arrow function.

Không giống như hàm thông thường, với arrow function, biếnthis sẽ trỏ tới surrounding scope! Có nghĩa là khi chúng ta gọi perimeter, nó sẽ không được gọi bởi shape object, mà nó được gọi bởi object nào đó tại surrounding scope (ví dụ window chẳng hạn).

Khi không có giá trị radius tại object đó, nó sẽ trả về undefined.

middle

middle

Gợi ý câu hỏi phỏng vấn

middle

Bạn biết gì về load event trong Javascript?

senior

Mô tả module design pattern trong JavaScript?

senior

Triển khai Command Pattern trong Javascript như thế nào?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào