Có toán tử hợp nhất null trong javascript không?

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
9

Cú 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 định

Chú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
1
Nế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
0

Hã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
7

Và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
8

Và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
3

Và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?

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ên

Như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
9

null ?? '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]

  • const result = value1 ?? value2
    
    5
  • null ?? 'test' // returns 'test'
    undefined ?? 56 // returns 56
    null ?? 0 // returns 0
    45 ?? 25 // returns 45
    
    5
  • một chuỗi rỗng [
    const result = value1 ?? value2
    
    7]
  • const baz = 0 ?? 42;
    console.log[baz];
    // expected output: 0
    
    2
  • const baz = 0 ?? 42;
    console.log[baz];
    // expected output: 0
    
    3

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
5

Và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
6

Sự 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

Hợp nhất null được thêm vào JavaScript khi nào?

Trong trường hợp giá trị null, có thể bạn sẽ muốn trả về một kết quả khác. JavaScript đảm bảo rằng điều này có thể được xử lý bằng toán tử nullish của nó, còn được gọi là Toán tử kết hợp Null, được thêm vào ngôn ngữ với ECMAScript 2020 .

JavaScript có toán tử Elvis không?

Trong Python, JavaScript, Ruby và Perl, toán tử Elvis không tồn tại ; . , hoặc ] hoạt động tương tự.

2 dấu chấm hỏi trong JS là gì?

Dấu hỏi kép Javascript là toán tử logic nhận hai giá trị và trả về giá trị bên phải nếu giá trị bên trái không xác định hoặc null, nếu không thì trả về bên trái . Mức độ ưu tiên của toán tử đối với toán tử hợp nhất nullish là mức thấp thứ năm. . Operator precedence for the nullish coalescing operator is the fifth-lowest.

Việc sử dụng toán tử hợp nhất null là gì?

Toán tử hợp nhất null ?? . Các ?? . returns the value of its left-hand operand if it isn't null ; otherwise, it evaluates the right-hand operand and returns its result. The ?? operator doesn't evaluate its right-hand operand if the left-hand operand evaluates to non-null.

Chủ Đề