javascript - जावास्क्रिप्ट में प्रश्न चिह्न और कोलन




syntax operators (4)

मैं निम्नलिखित पंक्ति में आया था

hsb.s = max != 0 ? 255 * delta / max : 0;

क्या करते ? और : इस संदर्भ में मतलब है?


hsb.s = अधिकतम! = 0? 255 * डेल्टा / अधिकतम: 0;

? एक टर्नरी ऑपरेटर है, यह एक के साथ संयोजन के रूप में काम करता है:

! = मतलब बराबर नहीं है

तो, इस लाइन का लंबा रूप होगा

if (max != 0) { //if max is not zero
  hsb.s = 255 * delta / max;
} else {
  hsb.s = 0;
}

इसके साथ सावधान रहें। ए -1 सच मानता है हालांकि -1! = सत्य और -1! = झूठा। मेरा विश्वास करो, मैंने इसे देखा है।

इसलिए

-1? "सच्ची तरफ": "झूठी तरफ"

"सच्ची तरफ" का मूल्यांकन


ब्रैकेट के साथ लिखे जाने पर यह शायद थोड़ा सा स्पष्ट है:

hsb.s = (max != 0) ? (255 * delta / max) : 0;

यह क्या करता है पहले ब्रैकेट में भाग का मूल्यांकन करता है। यदि परिणाम सच है तो उसके बाद का हिस्सा? और इससे पहले: वापस आ गया है। यदि यह गलत है, तो निम्नानुसार है: वापस आ गया है।


स्पष्टता के लिए उचित रूप से संश्लेषित, यह है

hsb.s = (max != 0) ? (255 * delta / max) : 0;

मतलब या तो वापसी

  • 255*delta/max अधिकतम = = 0
  • 0 यदि अधिकतम == 0





conditional-operator