Context

Thông thường API trả về dữ liệu có dạng JSON. Mà JSON được tổ chức theo object.

Để đảm bảo một thuộc tính hoặc phương thức nào đó của object có tồn tại, hoặc dù cho không tồn tại cũng không bị lỗi, ta dùng toán tử option chaining ?..

Chẳng hạn ta có một object:

const person = {
    name: "Father",
    child1: {
        name: "Son",
        child2: {
            name: "Grand son"
        }
    }
}
 
console.log(person.child1.child2.name) // "Grand son"

Giả sử ta không chắc thuộc tính child1 có tồn tại, ta đặt toán tử ?. phía sau tên của thuộc tính này:

console.log(person.child1?.child2.name)

Khi object không tồn tại thuộc tính child1 thì câu lệnh console.log cũng không sinh ra lỗi.

const person = {
	name: "Father"
}
 
console.log(person.child1.child2.name) // Uncaught TypeError: Cannot read property 'child2' of undefined
console.log(person.child1?.child2.name)
table tags as Tags, file.cday as Created
from [[Optional Chaining]]
sort file.ctime asc