জেএসে একটি ক্রিয়াকলাপ তৈরি করার জন্য একটি বিরাট বিদ্বেষ বলে মনে হচ্ছে। এই বিদ্বেষের ফলে লোকেরা চালাক হওয়ার চেষ্টা করে এবং হাস্যকর কৌশলগুলি কেবল একটি লাইনে জিনিস ফাংশন কল হিসাবে রাখার জন্য ব্যবহার করে। অবশ্যই একটি কলে ফাংশন নাম অতিরিক্ত ডকুমেন্টেশন হিসাবেও কাজ করে। আমরা কোনও ছদ্মবেশী অভিব্যক্তির সাথে একটি মন্তব্য সংযুক্ত করতে পারি না কারণ এটি করার বিন্দুকে পরাভূত করবে তাই আমরা কেবল এটি "js idiom" বলি এবং হঠাৎ এটি বোধগম্য হয়।
জাভাস্ক্রিপ্ট অত্যন্ত অ্যাক্সেসযোগ্য, বেশিরভাগ লোকেরা আমাদের মতো প্রাতঃরাশের জন্য স্পেসিফিকেশন খায় না। সুতরাং তারা কখনই বুঝতে পারবে না যে কোনও প্রতিমাটির গোপন অনুমান এবং প্রান্তের ঘটনাগুলি কী।
x = x || 'default_value';
গড় জো হয় হয় এটি বুঝতে পারে না বা এটি মুখস্থ করেছে যে এটি ডিফল্ট মানের জন্য প্রতিমা। উভয়ই ক্ষতিকারক, প্রকৃতপক্ষে এটি আরও বেশি ক্ষতিকারক। তিনি এখানে অনুমান এবং প্রান্তের মামলাগুলি বুঝতে পারবেন না। তিনি স্পেসিফিকেশনটি পড়তে এবং এটি কখনই বুঝতে পারছেন না।
যখন আমি যে কোড তাকান আমি দেখতে "যদি এটা null
বা undefined
, তারপর এই ডিফল্ট মানে সেট করুন। যদিও এটি পরোক্ষভাবে বিবেচনা করবে +0
, -0
, NaN
, false
, এবং ""
যেমন উপযুক্ত নয় মান। আমার মনে আছে করতে হবে যে 3 মাসের এখন থেকে যখন যে চাহিদা পরিবর্তন করতে। আমি সম্ভবত এটি ভুলে যাব। "
অন্তর্নিহিত অনুমানটি ভবিষ্যতে কোনও বাগ তৈরির সম্ভাবনা রয়েছে এবং আপনার কোডবেস যখন এ জাতীয় কৌশল দ্বারা পূর্ণ থাকে তবে যখনই কোন পরিবর্তনটি প্রভাবিত করবে তখন আপনি যখনই ভাবছেন তখন আপনি সেগুলি সমস্ত আপনার মাথায় রাখবেন এমন কোনও সম্ভাবনা নেই। এবং এটি "জেএস প্রো" এর জন্য, প্রয়োজনীয় জোগুলি বাগটি লিখতে চাইত এমনকি প্রয়োজনীয়তাগুলি শুরু করার জন্য একটি মিথ্যা মানটি গ্রহণ করতে চাইলেও।
আপনার নতুন স্নিপেটে আরও পরিচিত সিনট্যাক্স রয়েছে তবে উপরের সমস্যাটি এখনও রয়েছে।
আপনি সাথে যেতে পারেন:
function f(x) {
x = valueOrDefault(x, "default_value");
}
প্রান্তের কেসগুলি পরিচালনা করতে এখন আপনার খুব জটিল যুক্তি থাকতে পারে এবং ক্লায়েন্ট কোডটি এখনও সুন্দর এবং পঠনযোগ্য দেখাচ্ছে।
এখন, আপনি কীভাবে আর্গুমেন্ট হিসাবে কোনও ফাংশন পাস করার মতো বা উন্নত ভাষার বৈশিষ্ট্যের মধ্যে পার্থক্য করবেন || "default"
?
চতুর কৌশলগুলি সর্বদা কিছু গোপন অনুমানের অধীনে কাজ করে যা প্রাথমিকভাবে কোডটি তৈরি হওয়ার সময় উপেক্ষা করা যেতে পারে। আমাকে আর কোনও আইআইএফই কখনও পরিবর্তন করতে হবে না কারণ একটি প্রয়োজনীয়তা পরিবর্তিত হয়েছে, এটি সর্বদা থাকবে। সম্ভবত 2020 এ যখন আমি প্রকৃত মডিউলগুলি ব্যবহার করতে পারি তবে হ্যাঁ।
| 0
অথবা ফ্লোরিংয়ের ~~num
জন্য ব্যবহৃত কার্গো কাল্ট সংস্করণটি ইতিবাচক এবং 32-বিট স্বাক্ষরিত পূর্ণসংখ্যার সীমাটি ধরে নিয়েছে।
|| "default"
ধরে নিন যে সমস্ত মিথ্যা মানগুলি আর্গুমেন্টকে মোটেও পাস না করার মতো।
ইত্যাদি।