क्या कोई मुझे सरल शब्दों में समझा सकता है कि ?:
(सशर्त, "टर्नरी") ऑपरेटर क्या है और इसका उपयोग कैसे करना है?
?:
(जैसा कि आपने इसे लिखा है, जिसमें कोई कथन नहीं है) - एल्विस ऑपरेटर । बहुत चालाक है।
क्या कोई मुझे सरल शब्दों में समझा सकता है कि ?:
(सशर्त, "टर्नरी") ऑपरेटर क्या है और इसका उपयोग कैसे करना है?
?:
(जैसा कि आपने इसे लिखा है, जिसमें कोई कथन नहीं है) - एल्विस ऑपरेटर । बहुत चालाक है।
जवाबों:
यह if-if स्टेटमेंट के लिए एक-लाइन शॉर्टहैंड है। इसे सशर्त ऑपरेटर कहा जाता है। 1
यहाँ कोड का एक उदाहरण दिया गया है जिसे सशर्त ऑपरेटर के साथ छोटा किया जा सकता है:
var userType;
if (userIsYoungerThan18) {
userType = "Minor";
} else {
userType = "Adult";
}
if (userIsYoungerThan21) {
serveDrink("Grape Juice");
} else {
serveDrink("Wine");
}
इसे इस ?:
तरह से छोटा किया जा सकता है:
var userType = userIsYoungerThan18 ? "Minor" : "Adult";
serveDrink(userIsYoungerThan21 ? "Grape Juice" : "Wine");
सभी अभिव्यक्तियों की तरह, सशर्त ऑपरेटर को साइड-इफेक्ट के साथ एक स्टैंडअलोन स्टेटमेंट के रूप में भी इस्तेमाल किया जा सकता है, हालांकि यह मिनरल के बाहर असामान्य है :
userIsYoungerThan21 ? serveGrapeJuice() : serveWine();
वे भी जंजीर हो सकते हैं:
serveDrink(userIsYoungerThan4 ? 'Milk' : userIsYoungerThan21 ? 'Grape Juice' : 'Wine');
हालांकि, सावधान रहें, या आप इस तरह से जटिल कोड के साथ समाप्त हो जाएंगे:
var k = a ? (b ? (c ? d : e) : (d ? e : f)) : f ? (g ? h : i) : j;
1 जिसे अक्सर "टर्नरी ऑपरेटर" कहा जाता है, लेकिन वास्तव में यह केवल एक टर्नेरी ऑपरेटर है [एक ऑपरेटर जो तीन ऑपरेंड स्वीकार करता है]। यह वर्तमान में केवल एक जावास्क्रिप्ट है, हालांकि।
ternary
का प्रकार है (अर्थात इसके 3 भाग हैं)। उस विशिष्ट टर्नरी ऑपरेटर का नाम है conditional operator
। जेएस में केवल एक ही टर्नरी ऑपरेटर होता है, इसलिए शर्तों का दुरुपयोग होता है।
||
ऑपरेटर के साथ है , क्योंकि यह शॉर्ट-सर्किट है यदि बाईं ओर का मान सत्य है।
मैं दिए गए उत्तरों में कुछ जोड़ना चाहता हूं ।
यदि आप मुठभेड़ करते हैं (या उपयोग करना चाहते हैं) तो एक परिस्थिति में एक टर्नरी जैसे 'एक चर को प्रदर्शित करें यदि वह सेट है, और ...', आप इसे टर्नरी के बिना भी छोटा बना सकते हैं ।
के बजाय:
var welcomeMessage = 'Hello ' + (username ? username : 'guest');
आप उपयोग कर सकते हैं:
var welcomeMessage = 'Hello ' + (username || 'guest');
यह PHP के शॉर्टहैंड टर्नरी ऑपरेटर के बराबर है ?:
या और भी:
var welcomeMessage = 'Hello ' + (username || something || maybethis || 'guest');
यह चर का मूल्यांकन करता है, और यदि यह गलत या परेशान है, तो यह अगले पर जाता है।
'Hello ' + (username ? username : 'guest')
, Hello +
अगर इसे नजरअंदाज कर दिया जाए और टर्नरी ऑपरेशन के परिणाम को वापस कर दिया जाए। क्या कोई समझा सकता है क्यों?
'Hello ' + username
जो हमेशा होता है true
, क्योंकि यह एक स्ट्रिंग है जिसकी लंबाई 0. से अधिक है
इसे 'टर्नरी' या 'सशर्त' ऑपरेटर कहा जाता है।
उदाहरण
?: ऑपरेटर को एक ... और कथन के लिए शॉर्टकट के रूप में उपयोग किया जा सकता है। यह आमतौर पर एक बड़ी अभिव्यक्ति के हिस्से के रूप में उपयोग किया जाता है जहां एक ... और कथन अजीब होगा। उदाहरण के लिए:
var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
उदाहरण एक स्ट्रिंग बनाता है जिसमें "गुड इवनिंग।" अगर यह शाम 6 बजे के बाद का है। समतुल्य कोड if का उपयोग करके ... और स्टेटमेंट निम्नानुसार दिखेगा:
var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";
से MSDN जे एस प्रलेखन ।
मूल रूप से यह एक शॉर्टहैंड कंडीशनल स्टेटमेंट है।
और देखें:
यह Google के लिए थोड़ा कठिन है जब आपके पास सभी प्रतीक हैं;) उपयोग करने की शर्तें "जावास्क्रिप्ट सशर्त ऑपरेटर" हैं।
यदि आप जावास्क्रिप्ट में कोई और अधिक अजीब प्रतीक देखते हैं, तो आपको पहले जावास्क्रिप्ट के ऑपरेटरों को देखने का प्रयास करना चाहिए: एमडीसी के ऑपरेटरों की सूची । आपके द्वारा सामना किए जाने वाले एक अपवाद का $
प्रतीक है ।
अपने प्रश्न का उत्तर देने के लिए, सशर्त संचालक यदि बयान देते हैं, तो साधारण की जगह लेते हैं। एक उदाहरण सबसे अच्छा है:
var insurancePremium = age > 21 ? 100 : 200;
के बजाय:
var insurancePremium;
if (age > 21) {
insurancePremium = 100;
} else {
insurancePremium = 200;
}
var olderThan20 = age > 20;
।
z = (x == y ? 1 : 2);
के बराबर है
if (x == y)
z = 1;
else
z = 2;
को छोड़कर, ज़ाहिर है, यह छोटा है।
अधिकांश उत्तर सही हैं लेकिन मैं थोड़ा और जोड़ना चाहता हूं। त्रिगुट ऑपरेटर राइट साहचर्य, जो साधन यह किया जा सकता है श्रृंखलित निम्नलिखित तरीके से if … else-if … else-if … else
:
function example() {
return condition1 ? value1
: condition2 ? value2
: condition3 ? value3
: value4;
}
के बराबर:
function example() {
if (condition1) { return value1; }
else if (condition2) { return value2; }
else if (condition3) { return value3; }
else { return value4; }
}
अधिक जानकारी यहाँ है
इसे टर्नरी ऑपरेटर कहा जाता है
tmp = (foo==1 ? true : false);
टर्नरी ऑपरेटर
आमतौर पर हमारे पास जावास्क्रिप्ट में सशर्त वक्तव्य हैं।
उदाहरण:
if (true) {
console.log(1)
}
else {
console.log(0)
}
# Answer
# 1
लेकिन इसमें दो या दो से अधिक रेखाएँ होती हैं और यह एक चर को निर्दिष्ट नहीं कर सकता है। जावास्क्रिप्ट में इस समस्या के लिए एक समाधान है टर्नरी ऑपरेटर । टर्नेरी ऑपरेटर एक लाइन में लिख सकता है और एक चर को असाइन कर सकता है।
उदाहरण:
var operator = true ? 1 : 0
console.log(operator)
# Answer
# 1
यह टर्नेरी ऑपरेटर सी प्रोग्रामिंग भाषा में समान है।
अरे दोस्त बस याद है जे एस काम करता है या तो सही या गलत, सही का मूल्यांकन करके?
चलो एक सहायक ऑपरेटर ले:
questionAnswered ? "Awesome!" : "damn" ;
सबसे पहले, js जाँच करता है कि क्या प्रश्नवाचक है true
या नहीं false
।
अगर true
( ?
) आप "भयानक!"
और ( :
) आपको "लानत" मिलेगी;
आशा है कि यह दोस्त की मदद करता है :)
यह if statement
सब एक लाइन पर है।
इसलिए
var x=1;
(x == 1) ? y="true" : y="false";
alert(y);
मूल्यांकन किया जाना अभिव्यक्ति में है ( )
यदि यह सच से मेल खाता है, तो कोड को निष्पादित करें ?
यदि यह गलत है, तो कोड को निष्पादित करें :
x = 9
y = 8
एकल
++x
--x
बाइनरी
z = x + y
त्रिगुट
2>3 ? true : false;
2<3 ? true : false;
2<3 ? "2 is lesser than 3" : "2 is greater than 3";
यह कहा जाता है ternary operator
। कुछ और जानकारी के लिए, इस संबंध में एक और सवाल मैंने यहां दिया:
conditional operator
। जेएस में केवल एक ही टर्नरी ऑपरेटर होता है, इसलिए शर्तों का दुरुपयोग होता है।
यह शायद ऐसा करने का सबसे सुंदर तरीका नहीं है। लेकिन किसी ऐसे व्यक्ति के लिए जो टर्नरी ऑपरेटरों से परिचित नहीं है, यह उपयोगी साबित हो सकता है। मेरी व्यक्तिगत प्राथमिकता शर्त-ब्लॉक के बजाय 1-लाइनर कमियां करना है।
// var firstName = 'John'; // Undefined
var lastName = 'Doe';
// if lastName or firstName is undefined, false, null or empty => fallback to empty string
lastName = lastName || '';
firstName = firstName || '';
var displayName = '';
// if lastName (or firstName) is undefined, false, null or empty
// displayName equals 'John' OR 'Doe'
// if lastName and firstName are not empty
// a space is inserted between the names
displayName = (!lastName || !firstName) ? firstName + lastName : firstName + ' ' + lastName;
// if display name is undefined, false, null or empty => fallback to 'Unnamed'
displayName = displayName || 'Unnamed';
console.log(displayName);
हम Jquery के साथ-साथ नीचे के उदाहरण के साथ लंबाई का उपयोग कर सकते हैं:
मान लीजिए कि हमारे पास गारंटर नाम का टेक्स्टबॉक्स है, जिसका मूल्य है और पहले नाम और अंतिम नाम प्राप्त करना चाहते हैं- यह शून्य हो सकता है। तो रथार से
var gnamesplit = $("#txtGuarantorName").val().split(" ");
var gLastName = "";
var gFirstName = "";
if(gnamesplit.length > 0 ){
gLastName = gnamesplit[0];
}
if(gnamesplit.length > 1 ){
gFirstName = gnamesplit[1];
}
हम न्यूनतम कोड के साथ Jquery के नीचे कोड का उपयोग कर सकते हैं
var gnamesplit = $("#txtGuarantorName").val().split(" ");
var gLastName = gnamesplit.length > 0 ? gnamesplit[0] : "";
var gFirstName = gnamesplit.length > 1 ? gnamesplit[1] : "";
$("#txtLastName").val(gLastName);
$("#txtFirstName").val(gFirstName);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div >
Guarantor Name: <input type="text" id="txtGuarantorName" value="ASP.NET Core" /><br/>
<br/>
<br/>
First Name: <input type="text" id="txtLastName" value="ASP.NET Core" />
Last Name: <input type="text" id="txtFirstName" value="ASP.NET Core" />
</div>
जेएस, विशेष रूप से प्रतिक्रिया में टर्नरी अभिव्यक्ति बहुत उपयोगी है। यहाँ कई अच्छे, विस्तृत लोगों के लिए एक सरलीकृत उत्तर दिया गया है।
condition ? expressionIfTrue : expressionIfFalse
expressionIfTrue
यदि कथन सही हो तो ओजी के रूप में सोचें ; दूसरे कथन
के expressionIfFalse
रूप में सोचें ।
उदाहरण:
var x = 1;
(x == 1) ? y=x : y=z;
इसने x के मान की जाँच की, पहला y = (मान) लौटाया यदि सही है, तो बृहदान्त्र के बाद दूसरा रिटर्न: y = (मान) यदि गलत है।
सशर्त (टर्नरी) ऑपरेटर केवल जावास्क्रिप्ट ऑपरेटर है जो तीन ऑपरेंड लेता है। इस ऑपरेटर को अक्सर if स्टेटमेंट के लिए शॉर्टकट के रूप में उपयोग किया जाता है।
condition ? expr1 : expr2
यदि स्थिति सही है, तो ऑपरेटर expr1 का मान लौटाता है; अन्यथा, यह expr2 का मान लौटाता है।
function fact(n) {
if (n > 1) {
return n * fact(n-1);
} else {
return 1;
}
// we can replace the above code in a single line of code as below
//return (n != 1) ? n * fact(n - 1) : 1;
}
console.log(fact(5));
अधिक स्पष्टीकरण के लिए कृपया MDN दस्तावेज़ लिंक पढ़ें
यदि आपके पास जावास्क्रिप्ट में एक शर्त जाँच उदाहरण फ़ंक्शन है । टर्नरी ऑपरेटर का उपयोग करना आसान है । जिसे लागू करने के लिए केवल एक ही लाइन की आवश्यकता होगी । उदाहरण के लिए:
private module : string ='';
private page:boolean = false;
async mounted(){
if(this.module=== 'Main')
{
this.page = true;}
else{
this.page = false;
}
}
एक शर्त के साथ इस तरह के एक समारोह के रूप में लिखा जा सकता है।
this.page = this.module=== 'Main' ?true:false;
स्थिति ? अगर सही: अगर गलत
(sunday == 'True') ? sun="<span class='label label-success'>S</span>" : sun="<span class='label label-danger'>S</span>";
sun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"
sunday ?
। यह होना चाहिएsun = "<span class='label " + ((sunday === 'True' ? 'label-success' : 'label-danger') + "'>S</span>"