কেউ দয়া করে আমাকে সরল কথায় ব্যাখ্যা করতে পারেন ?:
(শর্তসাপেক্ষ, "টের্নারি") অপারেটর কী এবং কীভাবে এটি ব্যবহার করবেন?
?:
(যেমন আপনি এটি লিখেছেন, এর মধ্যে কোনও বিবৃতি নেই) - এলভিস অপারেটর । খুব চতুর।
কেউ দয়া করে আমাকে সরল কথায় ব্যাখ্যা করতে পারেন ?:
(শর্তসাপেক্ষ, "টের্নারি") অপারেটর কী এবং কীভাবে এটি ব্যবহার করবেন?
?:
(যেমন আপনি এটি লিখেছেন, এর মধ্যে কোনও বিবৃতি নেই) - এলভিস অপারেটর । খুব চতুর।
উত্তর:
এটি যদি অন্য-বিবৃতিতে এক-লাইন শর্টহ্যান্ড। একে শর্তসাপেক্ষ অপারেটর বলা হয়। 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');
এটি পিএইচপি-র শর্টহ্যান্ড টার্নারি অপারেটরের সমতুল্য জাভাস্ক্রিপ্ট ?:
অথবা এমনকি:
var welcomeMessage = 'Hello ' + (username || something || maybethis || 'guest');
এটি ভেরিয়েবলটি মূল্যায়ন করে এবং যদি এটি মিথ্যা বা সেট না করে থাকে তবে এটি পরবর্তীটিতে যায়।
'Hello ' + (username ? username : 'guest')
, Hello +
যদি উপেক্ষা করা হয় এবং কেবলমাত্র টের্নারি অপারেশনের ফলাফলটি ফিরে আসে। কেন কেউ ব্যাখ্যা করতে পারেন?
'Hello ' + username
যা সর্বদা true
, কারণ এটি স্ট্রিং 0 এর চেয়ে বেশি দৈর্ঘ্যের with
একে বলা হয় 'টার্নারি' বা 'শর্তসাপেক্ষ' অপারেটর।
উদাহরণ
?: অপারেটর যদি একটি ... অন্য বিবৃতিতে শর্টকাট হিসাবে ব্যবহার করা যেতে পারে। এটি সাধারণত বৃহত্তর প্রকাশের অংশ হিসাবে ব্যবহৃত হয় যেখানে একটি যদি ... অন্য বিবৃতিটি বিশ্রী হবে be উদাহরণ স্বরূপ:
var now = new Date();
var greeting = "Good" + ((now.getHours() > 17) ? " evening." : " day.");
উদাহরণটি "শুভ সন্ধ্যা" যুক্ত একটি স্ট্রিং তৈরি করে। যদি সন্ধ্যা। টার পরে হয় যদি ... অন্য বিবৃতিটি ব্যবহার করে সমমানের কোডটি নীচের মত দেখায়:
var now = new Date();
var greeting = "Good";
if (now.getHours() > 17)
greeting += " evening.";
else
greeting += " day.";
থেকে দুটিই MSDN জাতীয় ডকুমেন্টেশন ।
মূলত এটি একটি শর্টহ্যান্ড শর্তাধীন বিবৃতি।
আরও দেখুন:
গুগল করা আপনার পক্ষে একটু কঠিন যখন আপনার সমস্ত কিছু প্রতীক;) ব্যবহারের শর্তগুলি হ'ল "জাভাস্ক্রিপ্ট শর্তসাপেক্ষ অপারেটর"।
আপনি যদি জাভাস্ক্রিপ্টে আরও মজার চিহ্ন দেখতে পান তবে আপনার প্রথমে জাভাস্ক্রিপ্টের অপারেটরগুলি দেখার চেষ্টা করা উচিত: এমডিসির অপারেটরগুলির তালিকা । আপনি যে ব্যতিক্রমটির মুখোমুখি হবেন তা হ'ল $
প্রতীক ।
আপনার প্রশ্নের উত্তর দেওয়ার জন্য, শর্তসাপেক্ষ অপারেটররা যদি বিবৃতি দেয় তবে সরল প্রতিস্থাপন করে। একটি উদাহরণ সেরা:
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 কিনা তা পরীক্ষা questionAnswered হয় 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);
আমরা জ্যাকুরির পাশাপাশি দৈর্ঘ্যের সাথে নীচের উদাহরণ হিসাবে ব্যবহার করতে পারি:
মনে করুন আমাদের কাছে গ্যারান্টরনাম পাঠ্যবক্স রয়েছে যার মান রয়েছে এবং প্রথম নাম এবং পদবি পেতে চাই - এটি বাতিল হতে পারে। তাই রাথারের চেয়ে
var gnamesplit = $("#txtGuarantorName").val().split(" ");
var gLastName = "";
var gFirstName = "";
if(gnamesplit.length > 0 ){
gLastName = gnamesplit[0];
}
if(gnamesplit.length > 1 ){
gFirstName = gnamesplit[1];
}
আমরা ন্যূনতম কোড সহ জ্যাকুয়েরির সাথে নীচের কোডটি ব্যবহার করতে পারি
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 = (মান) মিথ্যা হলে।
শর্তসাপেক্ষে (টেরিনারি) অপারেটর একমাত্র জাভাস্ক্রিপ্ট অপারেটর যা তিনটি অপারেন্ড নেয়। এই অপারেটরটি প্রায়শই যদি বিবৃতিটির শর্টকাট হিসাবে ব্যবহৃত হয়।
condition ? expr1 : expr2
যদি শর্তটি সত্য হয় তবে অপারেটর এক্সপ্রেস 1 এর মান প্রদান করে; অন্যথায়, এটি 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));
আরও স্পষ্টতার জন্য এমডিএন ডকুমেন্ট লিঙ্কটি পড়ুন
আপনি এক শর্তে চেক উদাহরণস্বরূপ ফাংশন থাকে জাভাস্ক্রিপ্ট । এটি টার্নারি অপারেটর ব্যবহার করা সহজ । যা বাস্তবায়নের জন্য কেবল একটি একক লাইন প্রয়োজন । উদা:
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>"