Toán tử ternary bên trong đối tượng JavaScript
Trong quá trình làm việc của tôi, không có gì lạ khi tôi cần thêm các thuộc tính vào các đối tượng hoặc (có lẽ ít phổ biến hơn) vào các mảng một cách có điều kiện. Hãy nói về cách làm cả hai. Đây là đoạn mã tôi sẽ đề cập đến Show
Đầu tiên, xác định một số điều
Toán tử logic // expr1 && expr2 console.log(true && "hi"); // hi console.log(`abc` && "123"); // 123 console.log({} && "empty but valid"); // empty but valid console.log(false && "bye"); // false2 (AND) 2 là một toán tử logic. Các toán tử logic được sử dụng để “suy luận” về Booleans. Toán tử 2 là một trong ba toán tử có sẵn trong JavaScript (Không phải là tài liệu ở đây, nhưng để hoàn thiện — hai toán tử còn lại là toán tử 6 (OR) và toán tử 7 (kết hợp vô giá trị). )Cách sử dụng
Nếu biểu thức đầu tiên (ở bên trái) là đúng (“được coi là đúng khi gặp trong ngữ cảnh Boolean”), hãy trả về biểu thức thứ hai (ở bên phải) Nếu biểu thức đầu tiên là sai (“được coi là sai khi gặp trong ngữ cảnh Boolean”), hãy trả về biểu thức đầu tiên đánh giá ngắn mạchBiểu thức 2 được đánh giá từ trái sang phải. Nếu biểu thức đầu tiên là sai, thì biểu thức đầy đủ sẽ được đánh giá ngắn mạch thành biểu thức sai (có nghĩa là biểu thức thứ hai không bao giờ được đánh giá). Đây là thứ cho phép chúng tôi thực hiện những việc như truy cập an toàn các thuộc tính lồng nhau trên một đối tượng
Toán tử điều kiện (ba ngôi)Toán tử bậc ba có thể được coi là một lối tắt cho câu lệnh 9. Nó được làm từ ba phần
Một ví dụ. Hai chức năng dưới đây thực hiện chính xác điều tương tự bằng cách sử dụng cú pháp khác nhau. Cái đầu tiên sử dụng logic 9 và cái thứ hai sử dụng một bộ ba
Toán tử chênh lệch (const obj = {}; console.log(obj.first && obj.first.second); // undefined console.log(obj.first.second); // TypeError: Cannot read property 'second' of undefined3)Cú pháp trải rộng có thể được sử dụng để mở rộng một lần lặp (như biểu thức mảng) hoặc mở rộng các thuộc tính đối tượng Lan truyền một iterable
Trải rộng thuộc tính đối tượng
Nó có thể được sử dụng trên các lần lặp như một mảng hoặc một chuỗi. Nó mở rộng một iterable cho các phần tử riêng lẻ của nó Thêm thuộc tính vào đối tượng một cách có điều kiệnĐể thêm một thuộc tính vào một đối tượng một cách có điều kiện, chúng ta có thể sử dụng toán tử 2
Trong ví dụ trên, trong định nghĩa thuộc tính đầu tiên trên 5, biểu thức đầu tiên ( 6) là đúng/trung thực, vì vậy biểu thức thứ hai được trả về, sau đó lan truyền vào đối tượngTrong định nghĩa thuộc tính thứ hai, biểu thức đầu tiên (_______9_______7) là sai/sai, và do đó, biểu thức đầu tiên được trả về (và biểu thức thứ hai không bao giờ được đánh giá, do đoản mạch). Có vẻ hơi khó hiểu khi lan truyền một biểu thức giả tạo, nhưng kết quả là nó bị bỏ qua
Bạn không cần dấu ngoặc đơn khi đánh giá các biểu thức này, nhưng tôi thích chúng hơn, để làm rõ rằng thao tác trải rộng áp dụng cho kết quả của biểu thức đầy đủ
Thêm giá trị vào mảng theo điều kiệnViệc thêm một giá trị vào một mảng có điều kiện trông hơi khác một chút. Thay vì sử dụng toán tử 2, chúng ta sử dụng toán tử bậc baKhông giống như ví dụ trải rộng đối tượng, nếu bạn cố gắng trải rộng trên một giá trị giả trong một mảng, bạn sẽ nhận được TypeError 0Do đó chúng ta cần một ternary; . Sau đó (giả sử chúng tôi đã cung cấp chính xác hai lần lặp có thể) cả hai biểu thức được trả về có thể sẽ là lần lặp Chúng ta có thể sử dụng toán tử bậc ba trong đối tượng trong JavaScript không?Sử dụng toán tử bậc ba, bạn có thể kiểm tra xem một biến có phải là null hay không xác định hay không chỉ bằng cách chuyển tên biến vào vị trí của toán hạng điều kiện. Điều này đặc biệt hữu ích khi biến là một đối tượng . Nếu bạn cố truy cập một thuộc tính trên một đối tượng thực sự là null hoặc undefined , sẽ xảy ra lỗi.
Làm cách nào để sử dụng toán tử bậc ba bên trong đối tượng trong JavaScript?Toán tử điều kiện (bậc ba) là toán tử JavaScript duy nhất có ba toán hạng. một điều kiện theo sau bởi một dấu chấm hỏi ( ? ), sau đó là một biểu thức để thực thi nếu điều kiện là đúng theo sau bởi một dấu hai chấm (. ), và cuối cùng là biểu thức để thực hiện nếu điều kiện sai .
Chúng ta có thể sử dụng toán tử bậc ba bên trong điều kiện không?Có, bạn có thể . Toán tử điều kiện bậc ba là một biểu thức có kiểu được suy ra từ kiểu của hai đối số cuối cùng. Và các biểu thức có thể được sử dụng làm điều kiện trong câu lệnh if.
Chúng ta có thể sử dụng toán tử bậc ba lồng nhau trong JavaScript không?Toán tử bậc ba lồng nhau trong Javascript
. tôi. e. , chúng ta có thể sử dụng các toán tử bậc ba trong một toán tử bậc ba khác. Giả sử bạn muốn tìm số lớn nhất trong ba số. Về cơ bản, người ta có thể chuyển đổi bất kỳ khối if-else nào thành câu lệnh toán tử bậc ba. we can also use nested ternary operators. i.e., we can use ternary operators within another ternary operator. Suppose you want to find the largest of three numbers. Basically, one can convert any if-else block to a ternary operator statement. |