Hướng dẫn does javascript have elvis operator? - javascript có toán tử elvis không?

  1. Làm thế nào để
  2. JavaScript Howtos
  3. Nhà điều hành Elvis trong JavaScript

Đã tạo: tháng 3-17, 2022

Toán tử Elvis là phiên bản ngắn hơn của toán tử ternary. Nhà điều hành này được gọi là toán tử hợp tác

let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
6 trong JavaScript và nó được biểu thị bằng biểu tượng
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7.

Nó chỉ trả về một giá trị mặc định khi giá trị biểu thức là

let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
8 hoặc
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
9.

Thực hiện
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
6 Nhà điều hành hợp tác
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7 trong JavaScript

Nhà điều hành hợp tác

let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
6
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7 đã được giới thiệu trong phiên bản ECMAScript 2020 của ngôn ngữ lập trình JavaScript.

Syntax:

leftExpr ?? rightExpr

Toán tử

let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7 sẽ chỉ trả về
let val_1 = undefined || 'Hello!';
let val_2 = false || 'Hello!';
let val_3 = "" || 'Hello!';

console.log[val_1, val_2, val_3];
5 [biểu thức có mặt ở bên phải của toán tử
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7] chỉ khi
let val_1 = undefined || 'Hello!';
let val_2 = false || 'Hello!';
let val_3 = "" || 'Hello!';

console.log[val_1, val_2, val_3];
7 [biểu thức có mặt ở bên trái của toán tử
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7] là
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
8 hoặc
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
9.

Code:

let myObj = {
    name: {
        firstname: "Adam",
        lastname: "Smith"
    }
};
let val = myObj.name ?? "Default Value";
console.log[val];

Ở đây, chúng tôi đã tạo một đối tượng gọi là

Hello! Hello! Hello!
1 có chứa một thuộc tính gọi là
Hello! Hello! Hello!
2 chứa toàn bộ đối tượng làm giá trị. Sau đó, chúng tôi đang sử dụng toán tử
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7.

Ở bên trái của toán tử

let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7, chúng ta có biểu thức
Hello! Hello! Hello!
5, trong khi bên phải, chúng ta có biểu thức
Hello! Hello! Hello!
6. Biểu thức đúng, tức là, giá trị mặc định, sẽ chỉ được gán cho biến
Hello! Hello! Hello!
7 nếu
Hello! Hello! Hello!
5 là
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
8 hoặc
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
9.

Biểu thức

Hello! Hello! Hello!
5 chứa một số giá trị và nó không phải là
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
8 hoặc
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
9. Do đó, giá trị
Hello! Hello! Hello!
5 sẽ được lưu trữ bên trong biến
Hello! Hello! Hello!
7 và sau khi bạn in biến
Hello! Hello! Hello!
7, đầu ra bạn nhận được như sau.

Output:

Toán tử kết hợp

let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
6
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7 có thể được sử dụng bên trong một câu lệnh & nbsp; với bất kỳ biểu thức số nào như trong ví dụ dưới đây.

Code:

let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]

Trong ví dụ này, nếu cả

let val_1 = undefined ?? 'Hello!';
let val_2 = false ?? 'Hello!';
let val_3 = "" ?? 'Hello!';

console.log[val_1, val_2, val_3];
9 và
Hello! false
0 đều là
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
8 hoặc
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
9, thì chỉ có toán tử
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7 sẽ trả về chuỗi hoặc nó sẽ trả về giá trị của bất kỳ một biểu thức đầu tiên nào không phải là
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
8 hoặc
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
9.

Vì vậy, ở đây, chỉ có biểu thức

Hello! false
0 là
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
9 chứ không phải
Hello! Hello! Hello!
5, do đó, giá trị của biểu thức
Hello! Hello! Hello!
5 sẽ được trả về và lưu trữ bên trong biến
Hello! Hello! Hello!
7.

Biến

Hello! Hello! Hello!
7 hiện sẽ chứa đối tượng mà thuộc tính
Hello! Hello! Hello!
2 đang lưu trữ và đối tượng này sẽ được in trên bảng điều khiển.

Output:

Nhà điều hành

let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7 không được hỗ trợ trên các trình duyệt IE và Opera. Để biết thêm chi tiết liên quan đến khả năng tương thích của trình duyệt, bạn có thể đọc tài liệu MDN.

Trước khi toán tử

let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7 được giới thiệu bên trong ngôn ngữ lập trình JavaScript, một cách tiếp cận phổ biến là sử dụng toán tử logic
obj.val?.prop
obj.val?.[expr]
obj.func?.[args]
5
obj.val?.prop
obj.val?.[expr]
obj.func?.[args]
6 để gán giá trị mặc định của biến. Nhưng cách tiếp cận này của việc gán một giá trị mặc định tạo ra các vấn đề khác nhau.

Code:

let val_1 = undefined || 'Hello!';
let val_2 = false || 'Hello!';
let val_3 = "" || 'Hello!';

console.log[val_1, val_2, val_3];

Output:

Hello! Hello! Hello!

obj.val?.prop
obj.val?.[expr]
obj.func?.[args]
7 là toán tử logic Boolean, toán tử này có thể gây ra hành vi bất ngờ nếu bạn coi
obj.val?.prop
obj.val?.[expr]
obj.func?.[args]
8,
obj.val?.prop
obj.val?.[expr]
obj.func?.[args]
9 hoặc
const nestedProp = obj.first && obj.first.second;
0 là các giá trị hợp lệ như được hiển thị ở trên.

Thay đổi ví dụ tương tự bằng cách thay thế toán tử

obj.val?.prop
obj.val?.[expr]
obj.func?.[args]
5 bằng toán tử liên kết
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
6
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7 sẽ mang lại kết quả khác nhau.

Code:

let val_1 = undefined ?? 'Hello!';
let val_2 = false ?? 'Hello!';
let val_3 = "" ?? 'Hello!';

console.log[val_1, val_2, val_3];

Output:

Hello! false

Như bạn có thể thấy, toán tử này tạo ra đầu ra thích hợp. Đây là lý do tại sao nhà điều hành liên kết

let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
6
let val = myObj.name ?? myObj.email ?? "something null or undefined";
console.log[val]
7 đã được giới thiệu trong JavaScript.

Bài viết liên quan - Nhà điều hành JavaScript

  • Ngắn mạch trong JavaScript
  • Toán tử ternary trong javascript
  • Người vận hành quá tải trong JavaScript
  • Một trong những yêu cầu tính năng đầu tiên của TypeScript là toán tử Elvis. Chính xác hơn, toán tử điều hướng an toàn null. Đó là một biến thể của toán tử "DOT" cho phép bạn truy cập các thuộc tính và phương thức ngay cả khi đối tượng trước dấu chấm là null hoặc không xác định.optional chaining operator [

    const nestedProp = obj.first && obj.first.second;
    
    6] accesses an object's property or calls a function. If the object is
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9 or
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    8, it returns
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9 instead of throwing an error.

    Toán tử chuỗi tùy chọn [
    const nestedProp = obj.first && obj.first.second;
    
    6] truy cập vào thuộc tính của một đối tượng hoặc gọi hàm. Nếu đối tượng là
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9 hoặc
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    8, nó sẽ trả về
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9 thay vì ném lỗi.

    Thử nó

    obj.val?.prop
    obj.val?.[expr]
    obj.func?.[args]
    

    Cú pháp

    Sự mô tả

    Điều này dẫn đến các biểu thức ngắn hơn và đơn giản hơn khi truy cập các thuộc tính chuỗi khi khả năng tồn tại là một tham chiếu có thể bị thiếu. Nó cũng có thể hữu ích trong khi khám phá nội dung của một đối tượng khi không có sự đảm bảo nào về việc yêu cầu thuộc tính nào.

    Ví dụ, hãy xem xét một đối tượng

    const nestedProp = obj.first?.second;
    
    6 có cấu trúc lồng nhau. Không có chuỗi tùy chọn, tìm kiếm một Subproperty được lồng sâu đòi hỏi phải xác nhận các tài liệu tham khảo ở giữa, chẳng hạn như:

    const nestedProp = obj.first && obj.first.second;
    

    Giá trị của

    const nestedProp = obj.first?.second;
    
    7 được xác nhận là không phải là -____ 28 [và không phải -____ 29] trước khi truy cập giá trị của
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    00. Điều này ngăn ngừa lỗi sẽ xảy ra nếu bạn truy cập trực tiếp
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    00 mà không cần kiểm tra
    const nestedProp = obj.first?.second;
    
    7.

    Đây là một mô hình thành ngữ trong JavaScript, nhưng nó được dài dòng khi chuỗi dài và nó không an toàn. Ví dụ: nếu

    const nestedProp = obj.first?.second;
    
    7 là một giá trị giả mà không phải là
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    8 hoặc
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9, chẳng hạn như
    obj.val?.prop
    obj.val?.[expr]
    obj.func?.[args]
    
    8, nó vẫn sẽ ngắn mạch và làm cho
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    07 trở thành
    obj.val?.prop
    obj.val?.[expr]
    obj.func?.[args]
    
    8, có thể không mong muốn.

    Tuy nhiên, với toán tử chuỗi tùy chọn [

    const nestedProp = obj.first && obj.first.second;
    
    6], bạn không phải kiểm tra rõ ràng và ngắn mạch dựa trên trạng thái của
    const nestedProp = obj.first?.second;
    
    7 trước khi cố gắng truy cập
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    00:

    const nestedProp = obj.first?.second;
    

    Bằng cách sử dụng toán tử

    const nestedProp = obj.first && obj.first.second;
    
    6 thay vì chỉ
    const nestedProp = obj.first?.second;
    
    1, JavaScript biết kiểm tra ngầm để chắc chắn
    const nestedProp = obj.first?.second;
    
    7 không phải là
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    8 hoặc
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9 trước khi cố gắng truy cập
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    00. Nếu
    const nestedProp = obj.first?.second;
    
    7 là
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    8 hoặc
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9, biểu thức sẽ tự động ngắn mạch, trả về
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9.

    Điều này tương đương với các điều sau đây, ngoại trừ biến tạm thời trên thực tế không được tạo ra:

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    0

    Chuỗi tùy chọn không thể được sử dụng trên một đối tượng gốc không được khai báo, nhưng có thể được sử dụng với một đối tượng gốc có giá trị

    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9.

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    1

    Chuỗi tùy chọn với các cuộc gọi chức năng

    Bạn có thể sử dụng chuỗi tùy chọn khi cố gắng gọi một phương thức có thể không tồn tại. Điều này có thể hữu ích, ví dụ, khi sử dụng API trong đó phương thức có thể không khả dụng, do tuổi thực hiện hoặc do tính năng không có sẵn trên thiết bị của người dùng.

    Sử dụng chuỗi tùy chọn với các cuộc gọi chức năng khiến biểu thức tự động trả về

    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9 thay vì ném ngoại lệ nếu phương thức không tìm thấy:

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    2

    Tuy nhiên, nếu có một thuộc tính có tên như vậy không phải là một hàm, sử dụng

    const nestedProp = obj.first && obj.first.second;
    
    6 vẫn sẽ tăng ngoại lệ
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    25 "SomeInterface.Custommethod không phải là một hàm".

    Lưu ý: Nếu bản thân

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    26 là
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    8 hoặc
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9, ngoại lệ
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    25 vẫn sẽ được nâng lên ["một số thông minh là null"]. Nếu bạn mong đợi rằng
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    26 có thể là
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    8 hoặc
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9, bạn cũng phải sử dụng
    const nestedProp = obj.first && obj.first.second;
    
    6 tại vị trí này:
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    34.
    If
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    26 itself is
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    8 or
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9, a
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    25 exception will still be raised ["someInterface is null"]. If you expect that
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    26 itself may be
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    8 or
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9, you have to use
    const nestedProp = obj.first && obj.first.second;
    
    6 at this position as well:
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    34.

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    35 là cách ngắn nhất để vào chế độ Eval gián tiếp. Để biết thêm thông tin, xem trang tham chiếu
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    36.

    Chuỗi tùy chọn với biểu thức

    Bạn cũng có thể sử dụng toán tử chuỗi tùy chọn với ký hiệu khung, cho phép chuyển biểu thức làm tên thuộc tính:

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    3

    Điều này đặc biệt hữu ích cho các mảng, vì các chỉ số mảng phải được truy cập bằng dấu ngoặc.

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    4

    Chuỗi tùy chọn không hợp lệ ở phía bên trái của một nhiệm vụ

    Không hợp lệ khi cố gắng gán cho kết quả của một biểu thức chuỗi tùy chọn:

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    5

    Short-circuiting

    Khi sử dụng chuỗi tùy chọn với các biểu thức, nếu toán hạng bên trái là

    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    8 hoặc
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9, biểu thức sẽ không được đánh giá. Ví dụ:

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    6

    Truy cập tài sản tiếp theo cũng sẽ không được đánh giá.

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    7

    Điều này tương đương với:

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    8

    Tuy nhiên, hành vi ngắn mạch này chỉ xảy ra dọc theo một "chuỗi" truy cập tài sản liên tục. Nếu bạn nhóm một phần của chuỗi, thì quyền truy cập thuộc tính tiếp theo vẫn sẽ được đánh giá.

    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    9

    Điều này tương đương với:

    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    0

    Tuy nhiên, hành vi ngắn mạch này chỉ xảy ra dọc theo một "chuỗi" truy cập tài sản liên tục. Nếu bạn nhóm một phần của chuỗi, thì quyền truy cập thuộc tính tiếp theo vẫn sẽ được đánh giá.

    Ngoại trừ biến
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    39 không được tạo.

    Ví dụ

    Ví dụ cơ bản

    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    1

    Ví dụ này tìm kiếm giá trị của thuộc tính
    Hello! Hello! Hello!
    
    2 cho thành viên
    let myObj = {
        name: {
            firstname: "Adam",
            lastname: "Smith"
        }
    };
    let val = myObj.name ?? "Default Value";
    console.log[val];
    
    41 trong bản đồ khi không có thành viên như vậy. Do đó, kết quả là
    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    9.

    Xử lý các cuộc gọi lại tùy chọn hoặc trình xử lý sự kiện

    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    2

    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    3

    Nếu bạn sử dụng các cuộc gọi lại hoặc tìm nạp các phương thức từ một đối tượng có gán phá hủy, bạn có thể có các giá trị không tồn tại mà bạn không thể gọi là chức năng trừ khi bạn đã kiểm tra sự tồn tại của chúng. Sử dụng
    const nestedProp = obj.first && obj.first.second;
    
    6, bạn có thể tránh được bài kiểm tra bổ sung này:

    Xếp chồng toán tử chuỗi tùy chọn

    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    4

    Với các cấu trúc lồng nhau, có thể sử dụng chuỗi tùy chọn nhiều lần:

    Kết hợp với nhà điều hành liên kết không

    let val = myObj.name ?? myObj.email ?? "something null or undefined";
    console.log[val]
    
    5

    Thông số kỹ thuật

    Sự chỉ rõ
    Đặc tả ngôn ngữ Ecmascript # prod-optionalexpression
    # prod-OptionalExpression

    Tính tương thích của trình duyệt web

    Bảng BCD chỉ tải trong trình duyệt

    Xem thêm

    Có một nhà điều hành kết hợp null trong JavaScript?

    Toán tử kết hợp không có Nullish [??] là một toán tử logic trả về toán hạng bên phải của nó khi toán hạng bên tay trái của nó là không xác định hoặc không xác định, và nếu không thì sẽ trả lại toán hạng bên trái của nó.

    JavaScript có hỗ trợ chuỗi tùy chọn không?

    Chuỗi tùy chọn không thể được sử dụng trên một đối tượng gốc không được khai báo, nhưng có thể được sử dụng với một đối tượng gốc với giá trị không xác định.cannot be used on a non-declared root object, but can be used with a root object with value undefined .

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

    Toán tử có điều kiện [ternary] là toán tử JavaScript duy nhất có ba toán hạng: một điều kiện theo sau là dấu hỏi [?], Sau đóThực thi nếu điều kiện là giả. that takes three operands: a condition followed by a question mark [ ? ], then an expression to execute if the condition is truthy followed by a colon [ : ], and finally the expression to execute if the condition is falsy.

    Toán tử Elvis trong TypeScript là gì?

    Một trong những yêu cầu tính năng đầu tiên của TypeScript là toán tử Elvis.Chính xác hơn, toán tử điều hướng an toàn null.Đó là một biến thể của toán tử "DOT" cho phép bạn truy cập các thuộc tính và phương thức ngay cả khi đối tượng trước dấu chấm là null hoặc không xác định.null-safe navigation operator. That's a variant of the "dot" operator allowing you to access attributes and methods even if the object preceding the dot is null or undefined.

    Chủ Đề