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)
mantıklıdır (a ? b : a)
ve çarpma gibi davranır (ör. !!a * !!b
)
(a || b)
mantıklıdır (a ? a : b)
ve toplama gibi davranır (ör. !!a + !!b
)
(a = 0, b)
a
doğruysa umursamaz olmamak, dolaylı olarak geri dönmekb
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 Operatör Önceliği (İşlem Sırası)
Virgül işlecinin aslında en az ayrıcalıklı işleç olduğunu, ancak parantezin en ayrıcalıklı olduğunu ve tek satırlık ifadeler oluştururken el ele gittiğini unutmayın.
Sonunda, sabit kodlanmış değerlerden ziyade 'thunk'lara ihtiyacınız olabilir ve bana göre bir thunk hem fonksiyon hem de sonuç değeridir (aynı' şey ').
const windowInnerHeight = () => 0.8 * window.innerHeight; // a thunk
windowInnerHeight(); // a thunk