অপারেটর এবং এক্সপ্রেশন (Operators & Expressions)
অ্যারিথমেটিক অপারেটরগুলো — গণিতের ক্লাস, তবে মজায় ভরা (Arithmetic Operators — Math Class, But Fun)
আপনি সাধারণ গণিতে যা যা আশা করেন, জাভাস্ক্রিপ্ট তার সবকিছুই করতে পারে, এর সাথে আরও কিছু বাড়তি ট্রিকসও আছে। অপারেটরগুলোকে অ্যাকশন ওয়ার্ড হিসেবে চিন্তা করুন — এরা জাভাস্ক্রিপ্টকে এদের ভ্যালুগুলো দিয়ে কিছু একটা করতে বলে।
+— যোগ করা (এছাড়া স্ট্রিং জোড়া লাগাতেও এটি ব্যবহৃত হয়!)-— বিয়োগ করা*— গুণ করা/— ভাগ করা%— মডিউলো (ভাগের পর যে ভাগশেষ থাকে — জোড়/বিজোড় নির্ণয় করার জন্য এটি বেশ কার্যকরী)**— সূচক বা এক্সপোনেনশিয়েশন (exponentiation বা power)।2 ** 3মানে 2×2×2 = 8
এই + অপারেটরটি মাঝে মাঝে ধোঁকা দিতে পারে — যখন আপনি এটিকে কোনো স্ট্রিংয়ের সাথে ব্যবহার করবেন, তখন এটি ভ্যালুগুলোকে যোগ করার বদলে একসাথে জুড়ে দেয়। এটি নতুনদের প্রায়ই বেশ বেকায়দায় ফেলে!
অ্যারিথমেটিক এর ব্যবহার (Arithmetic in Action)
=== বনাম == — সমতা বা ইকুয়ালিটি নির্ণয়ের যুদ্ধ (=== vs == — The Battle of Equality)
জাভাস্ক্রিপ্ট শেখার সময় এটি বুঝতে পারা অত্যন্ত গুত্বপূর্ণ। সমতা চেক বা পরীক্ষা করার দুটি উপায় রয়েছে, এবং এগুলো খুব ভিন্ন উপায়ে আচরণ করে:
===(স্ট্রিক্ট ইকুয়ালিটি বা strict equality) — এটি ভ্যালু এবং টাইপ উভয়ই একই কি না সেটি চেক করে। কোনো ঘাপলা নেই। আপনার ৯৯% ক্ষেত্রে এটিই ব্যবহার করা উচিত।==(লুস ইকুয়ালিটি বা loose equality) — এটি তুলনা করার আগে ভ্যালুগুলোকে একই টাইপে পরিবর্তন করার চেষ্টা করে। এর ফলে মাঝে মাঝে অদ্ভুত সব রেজাল্ট বা ফলাফল দেখা যায়।
একই জিনিস !== (স্ট্রিক্ট নট-ইকুয়াল) বনাম != (লুস নট-ইকুয়াল)-এর ক্ষেত্রেও ঘটে। সবসময় স্ট্রিক্ট (strict) ভার্সনগুলোই ব্যবহারের চেষ্টা করুন।
স্ট্রিক্ট বনাম লুস ইকুয়ালিটি — যত অদ্ভুত সব ব্যাপার (Strict vs Loose Equality — The Weirdness)
লজিক্যাল অপারেটর এবং আধুনিক শর্টকাট (Logical Operators & Modern Shortcuts)
লজিক্যাল অপারেটরগুলো আপনাকে একাধিক শর্ত একসাথে যুক্ত করতে দেয় — এগুলো মূলত if স্টেটমেন্টের আঠা হিসেবে কাজ করে।
&&(AND বা এবং) — এর দুই দিকেরই শর্ত অবশ্যই সত্য হতে হবে||(OR বা অথবা) — এর অন্তত যেকোনো একদিকের শর্ত সত্য হতে হবে!(NOT বা না) — এটি সত্য (true)-কে মিথ্যা (false)-তে এবং মিথ্যাকে সত্যতে উল্টে দেয় বা পরিবর্তন করে
জ্ঞাত ডেভেলপারদের কাছে জনপ্রিয় জাভাস্ক্রিপ্টে আরও দুটি আধুনিক অপারেটর রয়েছে:
??(নালিশ কোলিসিং বা nullish coalescing) — এটি ডান দিকের ভ্যালুটি কেবলমাত্র তখনই রিটার্ন করে যখন বাম দিকের ভ্যালুটিnullঅথবাundefinedহয়।||এর মতো এটি0,"", বাfalse-কে এমন কিছু হিসেবে গণ্য করে না যা মিসিং বা হারিয়ে গেছে।?.(অপশনাল চেইনিং বা optional chaining) — এর ফলে আপনি নিরাপদে ডিপলি নেস্টেড বা গভীরে থাকা কোনো প্রপার্টিতে (property) প্রবেশ করতে পারবেন, এবং এই পুরো চেইনের বা দীর্ঘ পথের ভেতর যদি কোনো প্রপার্টিতেnullবাundefinedথেকেও থাকে তবুও তাতে আপনার কোড ক্র্যাশ করবে না।