+অপারেটর অ্যারে জন্য সংজ্ঞায়িত করা হয় না ।
যা ঘটে তা হ'ল জাভাস্ক্রিপ্ট অ্যারেগুলিকে স্ট্রিংগুলিতে রূপান্তরিত করে এবং সেগুলিকে সম্মতি দেয়।
হালনাগাদ
যেহেতু এই প্রশ্নটি এবং ফলস্বরূপ আমার উত্তরটি অনেক মনোযোগ পাচ্ছে আমি মনে করি অপারেটরটি সাধারণভাবে কীভাবে আচরণ করে সে সম্পর্কে একটি সংক্ষিপ্ত বিবরণ দেওয়া দরকারী এবং প্রাসঙ্গিক হবে +।
সুতরাং, এখানে এটি যায়।
E4X এবং বাস্তবায়ন-নির্দিষ্ট স্টাফ বাদ দিয়ে জাভাস্ক্রিপ্টে (ES5 হিসাবে) 6 বিল্ট-ইন ডেটা প্রকার রয়েছে :
- অনির্দিষ্ট
- খালি
- বুলিয়ান
- সংখ্যা
- দড়ি
- উদ্দেশ্য
মনে রাখবেন যে typeof কিছুটা বিভ্রান্তিমূলকভাবে object নুল এবং functionকলযোগ্য বস্তুর জন্য ফিরে আসে , নুল আসলে কোনও বস্তু নয় এবং কঠোরভাবে বলা হয়, স্পেসিফিকেশন-অনুসারে জাভাস্ক্রিপ্ট বাস্তবায়নে সমস্ত ফাংশনকে অবজেক্ট হিসাবে বিবেচনা করা হয়।
এটি ঠিক - জাভাস্ক্রিপ্টে এর মতো কোনও আদিম অ্যারে নেই ; Arrayব্যথা কমিয়ে আনার জন্য কেবল কোনও অবজেক্টের উদাহরণ হিসাবে কিছু সিনট্যাকটিক চিনির সাথে ডাকা হয়।
বিভ্রান্তিতে আরও যুক্ত করা, মোড়ক সত্তা যেমন new Number(5), new Boolean(true)এবং new String("abc")সমস্ত objectধরণের, সংখ্যা নয়, বুলিয়ান বা স্ট্রিং যেমন প্রত্যাশা করে। তবুও পাটিগণিত অপারেটরদের জন্য Numberএবং Booleanসংখ্যা হিসাবে আচরণ করুন।
সহজ, হাহ? এই সমস্ত কিছু বাদ দিয়ে, আমরা নিজেই ওভারভিউতে যেতে পারি।
+অপারেন্ড প্রকারভেদে বিভিন্ন ফলাফলের ধরণ
|| undefined | null | boolean | number | string | object |
=========================================================================
undefined || number | number | number | number | string | string |
null || number | number | number | number | string | string |
boolean || number | number | number | number | string | string |
number || number | number | number | number | string | string |
string || string | string | string | string | string | string |
object || string | string | string | string | string | string |
* Chrome13, FF6, Opera11 এবং IE9 এ প্রযোজ্য। অন্যান্য ব্রাউজার এবং সংস্করণগুলি পরীক্ষা করা পাঠকের জন্য অনুশীলন হিসাবে ছেড়ে গেছে।
দ্রষ্টব্য: সিএমএস দ্বারা নির্দেশিত হিসাবে Number, যেমন বস্তুর কিছু ক্ষেত্রে Booleanএবং কাস্টমগুলি +অপারেটর অগত্যা স্ট্রিং ফলাফল তৈরি করে না। এটি আদিম রূপান্তর থেকে বস্তুর প্রয়োগের উপর নির্ভর করে পৃথক হতে পারে। উদাহরণস্বরূপ var o = { valueOf:function () { return 4; } };মূল্যায়নের o + 2;উত্পাদন করে 6, একটি number, মূল্যায়ন o + '2'উত্পাদন করে '42', একটি string।
ওভারভিউ টেবিলটি কীভাবে উত্পন্ন হয়েছিল তা দেখতে http://jsfiddle.net/1obxuc7m/ দেখুন