প্রথমত, একটি ত্রৈমাসিক অভিব্যক্তি কোনও / অন্য নির্মাণের জন্য প্রতিস্থাপন নয় - এটি যদি / অন্যটি নির্মাণ করে একটি মান দেয় তবে এটির সমতুল্য । এটি, যদি একটি / অন্য ধারাটি কোড হয়, একটি ত্রৈমাসিক অভিব্যক্তিটি একটি অভিব্যক্তি , যার অর্থ এটি একটি মান দেয়।
এর অর্থ কয়েকটি জিনিস:
=
ফেরতের মান নির্ধারিত হওয়ার পরে বাম দিকে আপনার যখন ভেরিয়েবল থাকে কেবল তখনই টের্নারি এক্সপ্রেশন ব্যবহার করুন
- প্রত্যাবর্তিত মান দুটি মানের মধ্যে একটি হতে হলে কেবল ত্রৈমাসিক এক্সপ্রেশন ব্যবহার করুন (বা যদি উপযুক্ত হয় তবে নেস্টেড এক্সপ্রেশন ব্যবহার করুন)
- অভিব্যক্তির প্রতিটি অংশের (পরে? এবং পরে:) পার্শ্ব প্রতিক্রিয়া ছাড়াই একটি মান ফেরত দেওয়া উচিত (
x = true
সমস্ত এক্সপ্রেশনগুলি সর্বশেষ মানটি ফেরত দেওয়ার সাথে সাথে এক্সটিও পরিবর্তিত হয় তবে x পরিবর্তিত মানের উপর কোনও প্রভাব ফেলে না)
সংক্ষেপে - একটি ত্রৈমাসিক অভিব্যক্তিটির 'সঠিক' ব্যবহার
var resultofexpression = conditionasboolean ? truepart: falsepart;
আপনার উদাহরণের পরিবর্তে condition ? x=true : null ;
, যেখানে আপনি মান নির্ধারণের জন্য একটি ত্রৈমাসিক ভাবটি ব্যবহার করেন x
, আপনি এটি ব্যবহার করতে পারেন:
condition && (x = true);
এটি এখনও একটি অভিব্যক্তি এবং অতএব বৈধতা পাস করতে পারে না, তাই আরও ভাল পদ্ধতির হতে পারে
void(condition && x = true);
শেষটি বৈধতা পাস করবে।
তবে আবার, প্রত্যাশিত মানটি যদি বুলিয়ান হয় তবে শর্তটি প্রকাশের ফলাফলটি নিজেই ব্যবহার করুন
var x = (condition); // var x = (foo == "bar");
আপডেট
আপনার নমুনা সম্পর্কিত এটি সম্ভবত আরও উপযুক্ত:
defaults.slideshowWidth = defaults.slideshowWidth || obj.find('img').width()+'px';
condition ? x = true : null;
সম্ভবত হিসাবে লেখা উচিতx = (condition ? true : null);
। একদিকে যেমন, জাভাস্ক্রিপ্টেnull
মিথ্যা হিসাবে মূল্যায়ন করে তাই আপনি এই ক্ষেত্রেx = (condition);
একই ফলাফল অর্জন করতে পারেন ।