a = (b = 'string is truthy'); // b gets string; a gets b, which is a primitive (copy)
a = (b = { c: 'yes' }); // they point to the same object; a === b (not a copy)
(a && b)
là viết tắt của (a ? b : a)
(a || b)
là viết tắt của (a ? a : b)
(a = 0, b)
là chữ viết tắt không quan tâm nếu a
là truthy, ngầm return b
a = (b = 0) && "nope, but a is 0 and b is 0"; // b is falsey + order of operations
a = (b = "b is this string") && "a gets this string"; // b is truthy + order of ops
JavaScript Operator Precedence (Order of Operations)
Lưu ý rằng các nhà điều hành dấu phẩy thực sự là các nhà điều hành đặc quyền tối thiểu, nhưng ngoặc là những ưu tiên nhất, và họ đi tay trong tay khi xây dựng biểu thức một dòng.
Cuối cùng, bạn có thể cần 'khối' thay vì giá trị nguyên thủy được mã hóa cứng, và tôi chắc chắn bị trượt bởi vô tình truyền nhiều thông số, thay vì chạy qua hai biểu thức.
Với tôi, một đoạn là cả hàm và giá trị kết quả (cùng một 'điều').
const windowInnerHeight =() => 0.8 * window.innerHeight; // a thunk
windowInnerHeight(); // a thunk
** GIAO NHẬN XÁC NHẬN CHUYỂN QUYỀN ** [ưu tiên toán tử javascript] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Opera tor_Precedence # Associativity) – neaumusic