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)
तार्किक है (a ? b : a)
और गुणा की तरह व्यवहार करता है (जैसे। !!a * !!b
)
(a || b)
तार्किक रूप से है (a ? a : b)
और इसके अलावा व्यवहार करता है (जैसे। !!a + !!b
)
(a = 0, b)
a
सच्चाई नहीं है, तो संक्षेप में वापसी के लिए परवाह नहीं है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
जावास्क्रिप्ट संचालक प्राथमिकता (संचालन का क्रम)
ध्यान दें कि अल्पविराम ऑपरेटर वास्तव में कम से कम विशेषाधिकार प्राप्त ऑपरेटर है, लेकिन कोष्ठक सबसे अधिक विशेषाधिकार प्राप्त हैं, और वे एक-पंक्ति अभिव्यक्तियों का निर्माण करते समय हाथ से हाथ जाते हैं।
आखिरकार, आपको हार्डकोड किए गए मानों के बजाय 'थ्रक्स' की आवश्यकता हो सकती है, और मेरे लिए, एक थंक दोनों फ़ंक्शन और परिणामी मूल्य (समान 'चीज़') है।
const windowInnerHeight = () => 0.8 * window.innerHeight; // a thunk
windowInnerHeight(); // a thunk