জাভাস্ক্রিপ্টে একটি ইনলাইন আইএফ বিবৃতি কীভাবে লিখবেন?


286

আমি কীভাবে ifজাভাস্ক্রিপ্টে একটি ইনলাইন বিবৃতি ব্যবহার করতে পারি ? একটি ইনলাইন elseবিবৃতি আছে ?

এটার মতো কিছু:

var a = 2;
var b = 3;

if(a < b) {
    // do something
}

12
এখানে jQuery কোথায়? এবং আমি সত্যিই যাইহোক প্রশ্ন বুঝতে পারি না।
মার্ক

jquery অংশটি এর মতো হতে পারে document (নথি)। প্রস্তুত (ফাংশন () {var a = 2; var বি = 3; যদি (ক <বি) {// কিছু করুন}});
TakeItEasy

এটিও একটি
নকআউটজ

1
এটি একটি কৌণিক 1 এবং 2 এবং অন্যান্য জেএসের কাঠামোতে (ভ্যানিলা.জেএস সহ) প্রশ্ন রয়েছে
বেন টালিডিয়োরোস

উত্তর:


641

অগত্যা আপনার 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


59
এটি কীভাবে একটি ইনলাইন ব্যবহার করতে হবে তা চিত্রিত করে, যা প্রশ্নের সঠিক উত্তর দেয়।
ম্যাটডাব্লু

26
কেবল লক্ষণীয়, এই ক্ষেত্রে সমস্ত প্যারেনগুলি alচ্ছিক। এটি প্রায়শই ব্যক্তিগত পছন্দ / কোডিং শৈলী থাকে যা তারা ব্যবহার করার সময় নির্দেশ করে।
উইল ক্লেইন

3
@ খ্যানি, এটি একটি জাভাস্ক্রিপ্ট প্রশ্ন। ভাবগুলি অন্যান্য ভাষায় আলাদাভাবে মূল্যায়ন করতে পারে।
উইল ক্লেইন

1
@ ম্যাটডাব্লু এটি কোনও ইনলাইন আইএফ কীভাবে ব্যবহার করবেন তা দেখায় না, এটি আইএফ এলএসই কীভাবে ব্যবহার করবেন তা দেখায়
ফিনলে পার্সি

1
@getName সত্যই নয়, তবে আপনি চাইলে বিবৃতিটি একটি লাইন ব্যবহার করতে পারেনif (a < b) c = 'major';
ম্যাটডাব্লু

44

ifস্টেটমেন্ট ইনলাইন লেখার জন্য , এর অভ্যন্তরের কোডটি কেবলমাত্র একটি বিবৃতি হওয়া উচিত:

if ( a < b ) // code to be executed without curly braces;

43

এখানে একটি টার্নারি অপারেটর রয়েছে:

var c = (a < b) ? "a is less than b"  : "a is not less than b";

4
এটি আসলে কোনও কিছুর দায়িত্ব অর্পণ করতে হবে না। ডান হাতের উপাদানগুলি কেবল ফাংশন কল হতে পারে।
jfriend00

7
তাদের এমনকি ফাংশন কল হতে হবে না ... 0 < 1 : 5 : 120;একটি নিখুঁত বৈধ বিবৃতি। যদিও আপনাকে প্রতি লাইনে অর্থ প্রদান না করা হয় তবে অকেজো
রাই-

ঠিক আছে, @ jender00, মিনিটেক, টিপসের জন্য ধন্যবাদ।
মাহমুদ গামাল

@ jender00 যদিও আমি প্রায় সব ক্ষেত্রেই এর বিরুদ্ধে পরামর্শ দেব। আপনি যদি প্রকাশের মানটি ব্যবহার না করে থাকেন তবে আপনি যা চান তা হ'ল পার্শ্ব প্রতিক্রিয়া; এবং পার্শ্ব প্রতিক্রিয়াগুলি হ'ল বিবৃতিগুলির জন্য দুর্দান্ত। সেরকম ক্ষেত্রে পুরানো বোরিং ifস্টেটমেন্টটি ব্যবহার করা আপনার কোডটি সম্ভবত পড়তে ও বুঝতে সহজতর করবে এবং পরবর্তী পরিবর্তনের ফলে ভাঙার সম্ভাবনা কম।
এমিল লুন্ডবার্গ

35

আপনি / যদি অন্য কোনও লজিকাল অপারেটর ব্যবহার করে তবে আপনি আনুমানিকও আনতে পারেন।

(a && b) || c

উপরেরটি মোটামুটি একইভাবে বলেছে:

a ? b : c

এবং অবশ্যই, প্রায় হিসাবে একই:

if ( a ) { b } else { c }

আমি মোটামুটিভাবে বলছি কারণ এই পদ্ধতির সাথে একটি পার্থক্য রয়েছে, এটি আপনাকে জানতে হবে যে এর মানটি bসত্য হিসাবে মূল্যায়ন করবে, অন্যথায় আপনি সর্বদা পাবেন c। মূলত আপনাকে বুঝতে হবে যে অংশটি প্রদর্শিত হবে if () { here }তা এখন আপনার অবস্থার একটি অংশ if ( here ) { }

লজিক্যাল এক্সপ্রেশন গঠনকারী মূল মানগুলির মধ্যে একটি পাস / ফিরিয়ে দেওয়ার জাভাস্ক্রিপ্টের আচরণের কারণে উপরেরটি সম্ভব, যা অপারেটরের ধরণের উপর নির্ভর করে। পিএইচপি-র মতো কয়েকটি অন্যান্য ভাষাও অপারেশনের আসল ফলাফল অর্থাৎ সত্য বা মিথ্যা বহন করে, যার অর্থ ফলাফল সর্বদা সত্য বা মিথ্যা; উদাহরণ:

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 }

আপনি জিজ্ঞাসা করতে পারেন কেন ব্যবহার শুধু লজিক্যাল অপারেটর পরিবর্তে তিন অপারেটর , সহজ মামলা করার জন্য আপনাকে সম্ভবত না would, যদি না আপনি নিশ্চিত করতে চেয়েছিলেন aএবং bউভয় সত্য। ' আপনি লজিকাল অপারেটরগুলির সাথে আরও প্রবাহিত জটিল পরিস্থিতিও অর্জন করতে পারেন যা নেস্টেড টের্নারি অপারেশনগুলি ব্যবহার করে বেশ অগোছালো হয়ে উঠতে পারে ... তারপরে আবারও যদি আপনি চান যে আপনার কোডটি সহজেই পঠনযোগ্য হয়, তবে সত্যই তা স্বজ্ঞাত নয়।


32

সরল ইংরেজিতে সিনট্যাক্স ব্যাখ্যা করেছে:

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;

5
"অন্য" বিবৃতি ছাড়া এটি করা কি সম্ভব? অর্থাত্condition ? true
ডেভিলের অ্যাডভোকেট

@ স্কটবিসন শিওর এটি আপনার অবস্থার ব্যবহারের উপরও নির্ভর করে। true falseএবং ""সমস্ত অংশ অন্য অংশ অবহেলা করা উচিত।
ওনিমুশা

তাহলে 2 == 2 ? doSomething()কি একই হবে if (2 == 2) doSomething()?
শয়তানের অ্যাডভোকেট

1
হ্যাঁ, তবে অন্য অংশটি পুরোপুরি বাদ দেওয়া যাবে না। ইজারাতে : falseবা : ""জাভাস্ক্রিপ্টটি যেমনটি আশা করছে সেখানে থাকতে হবে।
ওনিমুশা

5
উহু. সুতরাং অন্য বিবৃতি ছাড়া এটি করা সম্ভব নয়
ডেভিলের অ্যাডভোকেট

21
<div id="ABLAHALAHOO">8008</div>
<div id="WABOOLAWADO">1110</div>

parseInt( $( '#ABLAHALAHOO' ).text()) > parseInt( $( '#WABOOLAWADO ).text()) ? alert( 'Eat potato' ) : alert( 'You starve' );

48
আমি শুধু কী পড়েছি তাও জানি না তবে আমি বেশ শক্তভাবে হাসছি।
জাজ

20

আপনি যদি কেবল একটি ইনলাইন আইএফ চান (ELSE ব্যতীত), আপনি লজিকাল এবং অপারেটরটি ব্যবহার করতে পারেন:

(a < b) && /*your code*/;

আপনার যদি একটি ELSE প্রয়োজন হয় তবে অন্যান্য লোকেরা যে ত্রৈমাসিকের পরামর্শ দিয়েছিল তা ব্যবহার করুন suggested


17

আপনি জাভাস্ক্রিপ্ট এ এটি করতে পারে:

a < b ? passed() : failed();

8

এফওয়াইআই, আপনি শর্তসাপেক্ষ অপারেটরগুলি রচনা করতে পারেন

var a = (truthy) ? 1 : (falsy) ? 2 : 3;

যদি আপনার যুক্তি যথেষ্ট জটিল হয় তবে আপনি একটি আইআইএফই ব্যবহার বিবেচনা করতে পারেন

var a = (function () {
  if (truthy) return 1;
  else if (falsy) return 2;
  return 3;
})();

অবশ্যই, আপনি যদি এই যুক্তিটি একাধিকবার ব্যবহার করার পরিকল্পনা করেন তবে জিনিসগুলি সুন্দর এবং ডিআরআই রাখার জন্য আপনাকে কোনও ফাংশনে এটি আবদ্ধ করতে হবে।


6

আমার প্রায়শই শর্ত অনুযায়ী আরও কোড চালানো দরকার: ( , , )একাধিক কোড উপাদানগুলি কার্যকর করতে পারে:

var a = 2;
var b = 3;
var c = 0;

( a < b ?  ( alert('hi'), a=3, b=2, c=a*b ) : ( alert('by'), a=4, b=10, c=a/b ) );

4

এটি যুক্ত করতে আপনি && এবং || এর সাথে শর্ত থাকলে ইনলাইনও ব্যবহার করতে পারেন অপারেটর। এটার মত

var a = 2;
var b = 0;

var c = (a > b || b == 0)? "do something" : "do something else";

0

প্রশ্নটি মূলত নয়: আমি কি নিম্নলিখিতগুলি লিখতে পারি?

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)

উপরেরগুলি একটি ব্যতিক্রম ছুঁড়ে ফেলবে (এবং অনুরূপ অনুক্রমগুলি অনাকাঙ্ক্ষিত আচরণ তৈরি করবে produce


0

ইনলাইন যদি:

(('hypothesis') ? 'truthy conclusion' : 'falsey conclusion')

সত্যবাদী উপসংহার: অনুমানটি সত্য হলে বিবৃতি কার্যকর করা হয়

মিথ্যা উপসংহার: হাইপোথিসিস মিথ্যা হলে বিবৃতি কার্যকর করা হয়

আপনার উদাহরণ:

var c = ((a < b) ? 'a<b statements' : '!(a<b) statements');
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.