मैं if
जावास्क्रिप्ट में इनलाइन स्टेटमेंट का उपयोग कैसे कर सकता हूं ? क्या इनलाइन else
स्टेटमेंट भी है?
कुछ इस तरह:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
मैं if
जावास्क्रिप्ट में इनलाइन स्टेटमेंट का उपयोग कैसे कर सकता हूं ? क्या इनलाइन else
स्टेटमेंट भी है?
कुछ इस तरह:
var a = 2;
var b = 3;
if(a < b) {
// do something
}
जवाबों:
जरूरी नहीं कि आपको jQuery की आवश्यकता हो। अकेले जावास्क्रिप्ट ऐसा करेगा।
var a = 2;
var b = 3;
var c = ((a < b) ? 'minor' : 'major');
c
चर हो जाएगा minor
अगर मूल्य है true
, और major
यदि मान है false
।
यह एक सशर्त (टर्नरी) ऑपरेटर के रूप में जाना जाता है।
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator
if (a < b) c = 'major';
एक टर्नरी ऑपरेटर है, जैसे:
var c = (a < b) ? "a is less than b" : "a is not less than b";
0 < 1 : 5 : 120;
पूरी तरह से मान्य कथन है। जब तक आपको प्रति पंक्ति भुगतान नहीं किया जाता, तब तक थोड़ा बेकार।
if
ऐसे मामले में सादे पुराने उबाऊ बयान का उपयोग करना संभवतः आपके कोड को पढ़ने और समझने में बहुत आसान बना देगा, और बाद के परिवर्तनों के साथ टूटने की संभावना कम होगी।
यदि आप केवल लॉजिकल ऑपरेटर्स का उपयोग कर रहे हैं, तो आप अनुमानित रूप से भी अनुमान लगा सकते हैं।
(a && b) || c
उपरोक्त कहावत के समान है:
a ? b : c
और जाहिर है, के रूप में ही लगभग:
if ( a ) { b } else { c }
मैं मोटे तौर पर कहता हूं क्योंकि इस दृष्टिकोण के साथ एक अंतर है, इसमें आपको यह जानना होगा कि मूल्य का b
मूल्यांकन सही होगा, अन्यथा आप हमेशा प्राप्त करेंगे c
। मूल रूप से आपको यह महसूस करना होगा कि जो हिस्सा दिखाई देगा, if () { here }
वह अब उस स्थिति का हिस्सा है, जिसे आप रखते हैंif ( here ) { }
।
तार्किक अभिव्यक्ति के गठन के मूल मूल्यों में से एक को पारित / वापस करने के जावा स्क्रिप्ट के व्यवहार के कारण उपरोक्त संभव है, जो ऑपरेटर के प्रकार पर निर्भर करता है। PHP जैसी कुछ अन्य भाषाएं, ऑपरेशन के वास्तविक परिणाम को सही या गलत मानती हैं, जिसका अर्थ है कि परिणाम हमेशा सही या गलत होता है; उदाहरण के लिए:
14 && 0 /// results as 0, not false
14 || 0 /// results as 14, not true
1 && 2 && 3 && 4 /// results as 4, not true
true && '' /// results as ''
{} || '0' /// results as {}
एक सामान्य लाभ, यदि सामान्य कथन की तुलना में, यह है कि पहले दो विधियाँ तर्क के दाहिने भाग पर काम कर सकती हैं, यानी असाइनमेंट के हिस्से के रूप में।
d = (a && b) || c;
d = a ? b : c;
if `a == true` then `d = b` else `d = c`
एक मानक के साथ इसे प्राप्त करने का एकमात्र तरीका यदि कथन असेंबली की नकल करना होगा:
if ( a ) { d = b } else { d = c }
आप पूछ सकते हैं कि टर्नरी ऑपरेटर के बजाय सिर्फ लॉजिकल ऑपरेटर्स का उपयोग क्यों करें , साधारण मामलों के लिए जो आप शायद नहीं करेंगे, जब तक आप सुनिश्चित नहीं करना चाहते थे और दोनों सच थे। आप लॉजिकल ऑपरेटर्स के साथ अधिक सुव्यवस्थित जटिल परिस्थितियों को भी प्राप्त कर सकते हैं, जो नेस्टेड टर्नरी संचालन का उपयोग करके काफी गड़बड़ हो सकता है ... फिर यदि आप चाहते हैं कि आपका कोड आसानी से पठनीय हो, तो न तो वास्तव में यह सहज है।a
b
सादे अंग्रेजी में, वाक्य रचना समझाया:
if(condition){
do_something_if_condition_is_met;
}
else{
do_something_else_if_condition_is_not_met;
}
के रूप में लिखा जा सकता है:
condition ? do_something_if_condition_is_met : do_something_else_if_condition_is_not_met;
condition ? true
true
false
और ""
सभी को दूसरे भाग की उपेक्षा करने के लिए ठीक होना चाहिए।
2 == 2 ? doSomething()
क्या ऐसा ही होगा if (2 == 2) doSomething()
?
: false
या : ""
होना चाहिए क्योंकि जावास्क्रिप्ट यह उम्मीद कर रहा है।
<div id="ABLAHALAHOO">8008</div>
<div id="WABOOLAWADO">1110</div>
parseInt( $( '#ABLAHALAHOO' ).text()) > parseInt( $( '#WABOOLAWADO ).text()) ? alert( 'Eat potato' ) : alert( 'You starve' );
FYI करें, आप सशर्त ऑपरेटरों की रचना कर सकते हैं
var a = (truthy) ? 1 : (falsy) ? 2 : 3;
यदि आपका तर्क पर्याप्त रूप से जटिल है, तो आप IIFE का उपयोग करने पर विचार कर सकते हैं
var a = (function () {
if (truthy) return 1;
else if (falsy) return 2;
return 3;
})();
बेशक, यदि आप एक से अधिक बार इस तर्क का उपयोग करने की योजना बनाते हैं, तो आप चीजों को अच्छा और डीआरवाई रखने के लिए एक फ़ंक्शन में इसे संक्षिप्त करने के लिए तैयार हैं।
अनिवार्य रूप से सवाल नहीं है: क्या मैं निम्नलिखित लिख सकता हूं?
if (foo)
console.log(bar)
else
console.log(foo + bar)
उत्तर है, हां, ऊपर अनुवाद होगा।
हालाँकि, निम्नलिखित करने से सावधान रहें
if (foo)
if (bar)
console.log(foo)
else
console.log(bar)
else
console.log(foobar)
ब्रेसिज़ में अस्पष्ट कोड को लपेटना सुनिश्चित करें क्योंकि ऊपर एक अपवाद फेंक देगा (और इसी तरह के क्रमपरिवर्तन अवांछित व्यवहार पैदा करेगा।)