Đoạn code sau có xảy ra lỗi không?
Đoạn code sau có xảy ra lỗi không?
const colorConfig = {
red: true,
blue: false,
green: true,
black: true,
yellow: false,
};
const colors = ["pink", "red", "blue"];
console.log(colorConfig.colors[1]);
true
false
undefined
TypeError
Trong Javascript ta có hai cách để truy cập thuộc tính của một object: sử dụng ngoặc vuông []
, hoặc sử dụng chấm .
. Trong trương hợp này chúng ta sử dụng chấm (colorConfig.colors
) thay cho ngoặc vuông (colorConfig["colors"]
).
Với cách sử dụng chấm, Javascript sẽ tìm kiếm một thuộc tính có tên chính xác như tên ta đưa vào. Trong trường hợp này nó là thuộc tính colors
trong object colorConfig
Tuy nhiên trong object này không có thuộc tính nào tên là colors
, nên nó sẽ trả về undefined
. Sau đó chúng ta cố truy cậ vào thuộc tính 1 của nó bằng cách gọi [1]
. Chúng ta không thể làm như vậy trên giá trị undefined
, nên nó sẽ trả về TypeError
: Cannot read property '1' of undefined
.
Javascript thông dịch theo câu lệnh. Khi ta sử dụng ngoặc vuông, Nnó sẽ tìm mở ngoặc đầu tiên [
và tiếp tục cho tới khi gặp đóng ngoặc tương ứng ]
. Chỉ khi đó nó mới đánh giá câu lệnh. Nếu chúng ta sử dụng cú pháp colorConfig[colors[1]]
, nó sẽ trả về giá trị của thuộc tính red
trong object colorConfig
.
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào