Toán tử kết hợp nullish là một toán tử logic có thể cực kỳ mạnh có thể giúp cuộc sống của chúng ta dễ dàng hơn nhiều trong một số trường hợp. Và với điều này, chúng ta có thể viết logic hiệu quả nhất
ES11 đã giới thiệu toán tử kết hợp nullish được biểu thị bằng dấu hỏi kép [??]
cú pháp
Toán tử được viết dưới dạng hai dấu chấm hỏi
const result = value1 ?? value2
9Cú pháp của toán tử kết hợp Nullish là,
leftExpr ?? rightExpr
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Dưới đây là các ví dụ về cách hoạt động của toán tử,
const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
null ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Làm thế nào nó hoạt động?
Xem xét ví dụ dưới đây về toán tử. Toán tử kết hợp nullish là toán tử logic chấp nhận hai giá trị
const result = value1 ?? value2
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Câu lệnh trên trả về giá trị thứ hai [
const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
0] nếu giá trị đầu tiên [const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
1] là const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
2 hoặc const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
3. Hoặc nếu không, nó sẽ trả về giá trị đầu tiên [______11]Về mặt kỹ thuật, logic trên tương đương với khối sau
const result = value1;
if[result === null || result === undefined] {
result = value2;
}
Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Nói cách khác,
Hãy giả sử
const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
2 và const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
3 là tương tự nhau trong ngữ cảnh này và giả sử 'được xác định' là một cái gì đó không rỗng hoặc không xác địnhChúng ta có thể định nghĩa ví dụ của mình giống như thế này,
Kết quả của
const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
7 là,Nếu
const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
1 được xác định, thì trả về const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
1Nếu
const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
1 không được xác định, thì trả về const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
0Hãy xem thêm các ví dụ về toán tử hợp nhất Nullish
Trong ví dụ dưới đây, chúng ta có giá trị null ở giá trị đầu tiên và chuỗi ở giá trị thứ hai. Vì chúng tôi có null trong giá trị đầu tiên, nên giá trị thứ hai ['chuỗi mặc định'] được trả về
const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
7Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Hãy xem thêm một ví dụ trong đó giá trị đầu tiên được trả về
const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
8Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Vì chúng tôi có một số trong chuỗi đầu tiên, nên giá trị đầu tiên [
null ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
2 hoặc null ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
3] được trả vềXem xét ví dụ dưới đây, Lưu ý rằng giá trị đầu tiên cần phải là null hoặc không xác định để toán tử ?? trả về giá trị thứ hai.
null ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
4 hoặc null ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
5 không được coi lànull ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
3Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
Nó khác với toán tử logic OR [null ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
6] như thế nào?
null ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
Toán tử OR [______26] có thể được sử dụng theo cách tương tự như
const result = value1 ?? value2
9. Chúng ta có thể nhận được kết quả tương tự cho các ví dụ trênNhưng mà,
có một sự khác biệt giữa
null ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
6 và const result = value1 ?? value2
9null ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
6 trả về giá trị trung thực đầu tiên. ______39 trả về giá trị được xác định đầu tiên.
Nói cách khác,
null ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
6 không phân biệt giữa các giá trị bên dưới [const result = value1 ?? value2
4]
5const result = value1 ?? value2
5null ?? 'test' // returns 'test' undefined ?? 56 // returns 56 null ?? 0 // returns 0 45 ?? 25 // returns 45
- một chuỗi rỗng [
7]const result = value1 ?? value2
2const baz = 0 ?? 42; console.log[baz]; // expected output: 0
3const baz = 0 ?? 42; console.log[baz]; // expected output: 0
Chúng được gọi là – giá trị giả. Nếu bất kỳ trong số này là đối số đầu tiên của. , sau đó chúng ta sẽ nhận được đối số thứ hai là kết quả
const result = value1 ?? value2
5Vào chế độ toàn màn hình Thoát chế độ toàn màn hình
nơi mà
const result = value1 ?? value2
9 chỉ xem xét const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
2 và const baz = 0 ?? 42;
console.log[baz];
// expected output: 0
3 không giống như null ?? 'test' // returns 'test'
undefined ?? 56 // returns 56
null ?? 0 // returns 0
45 ?? 25 // returns 45
6Sự kết luận
Và đó là cách hoạt động của
const result = value1 ?? value2
9operator. Nhận xét bên dưới nếu bạn đã sử dụng toán tử này trong mã của mình. Cảm ơn bạn