আপনারা যদি কখনো ট্রাই করে থাকেন যে দুইটা খালি অ্যারের অ্যাডিশন(অথবা ক্লিয়ার বললে +
ইউজ করলে) এর ফলাফল হয় খালি স্ট্রিং ''
। এটা শুধুমাত্র দুইটা না, বরং যত ইচ্ছা খালি অ্যারে এরকম +
দিতে অ্যাড করেন না কেন এটার ফলাফল সেই সেইম একই খালি স্ট্রিং ''
দেখাবেঃ
[] + []
// ''
[] + [] + [] + [] + []
// ''
এখানে মূল কারসাজি আসলে এই অ্যাডিশন +
অপারেটরের। এই +
অপারেটরের দুইটা অপারেন্ডের মাঝখানে বসলে কাজ হতে পারে দুইরকমঃ দুইটা নাম্বারের মধ্যে যোগ করা আর স্ট্রিং যুক্ত(String Concatenation) করা। এখানে আমরা যেহেতু দুইটা অ্যারের মাঝখানে বসিয়েছি আর অ্যারে আসলে নাম্বার না, তাই এখানে এই +
অপারেটরটি টাইপ কোয়ারশনের সাহায্যে এদেরকে স্ট্রিং এ কনভার্ট করে তারপর সেটার ফলাফল দেখিয়েছে(ইকমাস্ক্রিপ্ট স্টান্ডার্ড অনুযায়ী)।
আমরা যদি এখন কথামতো দেখি যে একটা খালি অ্যারে[]
কে স্ট্রিং এ কনভার্ট করলে কি হয়ঃ
String([])
// ''
এ কারণেই খালি অ্যারে [] যতই যোগ করেন এখানে আসলে খালি স্ট্রিংই হচ্ছেঃ
[] + []
// ''
'' + ''
// ''
এবার তাহলে বলেন তো অ্যারেগুলো যদি খালি না হয়ে এরকম [1, 2] + [3, 4]
হতো তাহলে এর ফলাফল কি হবে? আসুন প্রথমে এদেরকে নিয়ম অনুযায়ী স্ট্রিং এ কনভার্ট করে দেখিঃ
String([1, 2])
//'1,2'
String([3, 4])
//'3,4'
তো শেষ পর্যন্ত String Concatenation হয়ে হিসেব-নিকেশ দাড়াচ্ছে এরকমঃ
'1,2' + '3,4'
// '1,23,4'
সেজন্যেই [1, 2] + [3, 4]
এর ফলাফল '1,23,4'
হবে, [’Hello’, ‘World’] + [’Hello’, ‘Bangladesh’]
এর ফলাফল হবে 'Hello,WorldHello,Bangladesh’
ইত্যাদি ইত্যাদি...