ECMAScript এককর্মী অপারেটর
- পূর্ববর্তী পৃষ্ঠা ECMAScript রেফারেন্স ধরন
- পরবর্তী পৃষ্ঠা বিট অপারেটর
একক পরিমাণকরণ একমাত্র একটি পরিমাণ আছে, যা করা হবে কর্মকর্তা বা মান্যতা। তারা ECMAScript-এর সবচেয়ে সরল পরিমাণকরণ।
delete
delete পরিমাণকরণ ব্যবহার করে পূর্ব নির্ধারিত বস্তুর বৈশিষ্ট্য বা পদ্ধতির উপর উপযোগ বাদ দেয়। উদাহরণ:
var o = new Object; o.name = "David"; alert(o.name); // বিদেশী "David" delete o.name; alert(o.name); // ফলাফল "undefined" প্রদর্শন করা হবে
এই উদাহরণে, name প্রক্রিয়াটি মুক্ত করা হয়েছে, যার মান undefined (অর্থাৎ নির্মিত অবিনিময় পরিবর্তনকারীর মান) হয়ে যায়。
delete অপারেটরটি ডেভেলপার দ্বারা অভিন্নভাবে নির্মিত প্রক্রিয়াগুলো এবং পদ্ধতিগুলো মুক্ত করতে পারে না। উদাহরণস্বরূপ, নিচের কোডটি ত্রুটি ফেলবে:
delete o.toString;
যদিও toString একটি বৈধ নাম, এই লাইনটি ত্রুটি ফেলবে, কারণ toString() মথডটি প্রকৃত ইসক্রিপ্ট মথড, না ডেভেলপার দ্বারা নির্মিত。
void
void অপারেটর কোনো মানের জন্য undefined রিটার্ন করে। এই অপারেটরটি সাধারণত কোনো বৈধ মান না দেওয়ার জন্য ব্যবহৃত হয়, যেমন HTML <a> ইলেকমেন্ট থেকে JavaScript ফাংশন কল করার সময়। এইভাবে সঠিকভাবে করতে, ফাংশনটি কোনো বৈধ মান রিটার্ন করবে না, না তাহলে ব্রাউজার পৃষ্ঠা শুধুমাত্র ফাংশনের ফলাফল দেখাবে। উদাহরণস্বরূপ:
<a href="javascript:window.open('about:blank')">ক্লিক করুন</a>
এই লাইনটি HTML পৃষ্ঠায় প্রবর্তন করলে, তার লিঙ্কের উপর ক্লিক করলে, স্ক্রিনে "[object]" দেখা যাবে。TIY
এটা কারণে যে উইন্ডো.open() মথড একটি নতুন খুলা উইন্ডোর রেফারেন্স রিটার্ন করে, এটা পরে প্রদর্শন করার জন্য ওবজেক্টটিকে রূপান্তরিত করা হয়।
এই প্রভাবকে বিরত রাখতে, void অপারেটর ব্যবহার করে window.open() ফাংশন কল করুন:
<a href="javascript:void(window.open('about:blank'))">ক্লিক করুন</a>
এটা কারণে window.open() কল না undefined রিটার্ন করে, যা একটি বৈধ মান নয়, এটা ব্রাউজার উইন্ডোতে দেখা যাবে না。
সূচনা:মনে রাখুন যে, কোনো ফাংশন যেমন কোনো রিটার্ন ভ্যালু না দেয়, তা সত্যিকারেরভাবে undefined রিটার্ন করে。
প্রথম বৃদ্ধি/প্রথম হ্রাস অপারেটর
সীমান্ত থেকে C (এবং Java) থেকে লোড করা দুইটি অপারেটর হল প্রথম বৃদ্ধি অপারেটর এবং প্রথম হ্রাস অপারেটর。
প্রথম বৃদ্ধি অপারেটর, যার মান 1 থেকে বৃদ্ধি করা, এই রূপটিতে বলা হয় বক্তব্যের আগে দুইটি জোড়া সংখ্যা (++) দিয়ে:
var iNum = 10; ++iNum;
দ্বিতীয় লাইনের কোড iNum-কে 11 হতে বৃদ্ধি করে, তা প্রকৃতপক্ষে এইভাবে সমান:
var iNum = 10; iNum = iNum + 1;
একইভাবে, প্রথম হ্রাস অপারেটর হল 1 থেকে হ্রাস করা, এই রূপটিতে বলা হয় বক্তব্যের আগে দুইটি হ্রাস সংখ্যা (--) দিয়ে:
var iNum = 10; --iNum;
এই উদাহরণে, দ্বিতীয় লাইনের কোড iNum-এর মান 9 হয়ে যায়。
প্রিফিক্স অপারেটর ব্যবহার করার সময়, নোট করুন যে বৃদ্ধি এবং হ্রাস অপারেটরগুলি হলেও তারা হিসাব এক্সপ্রেশনের আগেই ঘটে। নিচের উদাহরণ দেখুন:
var iNum = 10; --iNum; alert(iNum); //প্রদর্শন "9" alert(--iNum); //প্রদর্শন "8" alert(iNum); //প্রদর্শন "8"
দ্বিতীয় লাইনের কোড iNum-কে হ্রাস করে, তৃতীয় লাইনের কোড ফলাফল ("9") দেখায়। চতুর্থ লাইনের কোড পুনরায় iNum-কে হ্রাস করে, কিন্তু এবার একই সূত্রে পূর্বসূত্র হ্রাস অপারেটর এবং প্রদর্শন অপারেশন সময়ের একই সূত্রে প্রকাশ করা হয়, ফলাফল "8" দেখায়। সমস্ত হ্রাস অপারেটর প্রয়োগকে প্রমাণ করতে, পঞ্চম লাইনের কোড "8" পুনরায় প্রদর্শন করে。
গণিতীয় এক্সপ্রেসনে, পূর্বসূত্র এবং পূর্বসূত্র অপারেটরের প্রাথমিকতা একই এবং তাই বাম থেকে ডানের ক্রমে গণনা করতে হয়। উদাহরণ হিসাবে:
var iNum1 = 2; var iNum2 = 20; var iNum3 = --iNum1 + ++iNum2; //সমান "22" var iNum4 = iNum1 + iNum2; //সমান "22"
আগের কোডে, iNum3 22 এবং 1 + 21 গণনা করতে হয়, কারণ একটি iNum4 22 এবং 1 + 21-এরও সমান হয়。
পরসূত্র/পরসূত্র অপারেটর
এছাড়াও, দুটি প্রত্যক্ষভাবে C (এবং Java)-এর থেকে ঋণাবশ্যক অপারেটর, যেগুলি পরসূত্র বৃদ্ধি অপারেটর এবং পরসূত্র হ্রাস অপারেটর হয়。
পরসূত্র বৃদ্ধি অপারেটরও 1 বৃদ্ধি করে, যা পরিবর্তন দেখায় দুই বৃদ্ধি চিহ্ন (++) দিয়ে প্রকাশ করা হয়:
var iNum = 10; iNum++;
অপ্রত্যাশিত নয়, পরসূত্র হ্রাস অপারেটরও 1 হ্রাস করে, যা পরিবর্তন দেখায় দুই হ্রাস চিহ্ন (--) দিয়ে প্রকাশ করা হয়:
var iNum = 10; iNum--;
দ্বিতীয় লাইনের কোড iNum-এর মান 9 করে হ্রাস করে。
পূর্বসূত্র অপারেটরের থেকে ভিন্ন, পরসূত্র অপারেটরটি তাদের অন্তর্ভুক্ত এক্সপ্রেসন গণনা করার পরেই বৃদ্ধি কিংবা হ্রাস অপারেটর প্রয়োগ করে। উদাহরণ হিসাবে:
var iNum = 10; iNum--; alert(iNum); //প্রদর্শন "9" alert(iNum--); //প্রদর্শন "9" alert(iNum); //প্রদর্শন "8"
পূর্বসূত্র অপারেটরের উদাহরণের মতো, দ্বিতীয় লাইনের কোড একটি হ্রাস অপারেটরের মাধ্যমে iNum-কে হ্রাস করে, তৃতীয় লাইনের কোড ফলাফল ("9") দেখায়। চতুর্থ লাইনের কোড পুনরায় iNum-কে দেখায়, কিন্তু এবার একই সূত্রে হ্রাস অপারেটর প্রয়োগ করা হয়েছে। হ্রাস অপারেটর গণনার পরে প্রয়োগ হওয়ার কারণে, এই সূত্রটি দেখায় "9"। পঞ্চম লাইনের কোড চালু হওয়ার পরে, alert ফাংশন "8" দেখায়, কারণ চতুর্থ লাইনের কোড চালু হওয়ার পর এবং পঞ্চম লাইনের কোড চালু হওয়ার পরে, পরসূত্র হ্রাস অপারেটর চালু হয়েছে。
গণিতীয় এক্সপ্রেসনে, পূর্বসূত্র এবং পরসূত্র অপারেটরের প্রাথমিকতা একই এবং তাই বাম থেকে ডানের ক্রমে গণনা করতে হয়। উদাহরণ হিসাবে:
var iNum1 = 2; var iNum2 = 20; var iNum3 = iNum1-- + iNum2++; //সমান "22" var iNum4 = iNum1 + iNum2; //সমান "22"
পূর্ববর্তী কোডে, iNum3 22 এর মান রয়েছে, কারণ এক্সপ্রেশনটি 2 + 20 গণনা করতে হবে।বিন্যাস iNum4ও 22 এর মান রয়েছে, কিন্তু এটি 1 + 21 গণনা করতে হবে, কারণ বৃদ্ধি এবং হ্রাস অপারেটরগুলি iNum3-কে আসতে পরে এসে বৃদ্ধি এবং হ্রাস করা হয়েছে।
একক হাইপারেশন এবং একক হ্রাস
অধিকাংশ লোকই একক হাইপারেশন এবং একক হ্রাস অপারেটরকে জানে, এমনকি ECMAScript-এর ব্যবহারও একইভাবে হয়, যেমন তারা উচ্চ মাধ্যমিক শিক্ষায় শিখেছেন。
একক হাইপারেশনটি সংখ্যার ওপর প্রকৃতই কোনও প্রভাব না করে থাকে:
var iNum = 20; iNum = +iNum; alert(iNum); //আউটপুট "20"
এই কোডটি 20 সংখ্যাকে একক হাইপারেশন দ্বারা কাজ করায়, আউটপুট হল 20।
একক হাইপারেশনটি সংখ্যার ওপর কোনও প্রভাব না করলেও, শ্রেণীর ওপর একটি আশ্চর্যজনক প্রভাব রাখে, যা শ্রেণীকে সংখ্যায় রূপান্তর করতে পারে。
var sNum = "20"; alert(typeof sNum); //আউটপুট "string" var iNum = +sNum; alert(typeof iNum); //আউটপুট "number"
এই কোডটি "20" শ্রেণীকে প্রকৃত সংখ্যায় রূপান্তর করবে।একক হাইপারেশন অপারেটর শ্রেণীকে কাজ করার সময়, এটি শ্রেণীকে গণনা করার পদ্ধতি প্রাইসিওলেক্স() এর মতো, কিন্তু মূলতঃ শুধুমাত্র "0x"-এর সাথে শুরু করা শ্রেণী (এককক্ষয়ী সংখ্যা) একক অপারেটরকে একক সংখ্যায় রূপান্তর করতে পারে।তাই, "010"-কে একক হাইপারেশন দ্বারা রূপান্তর করা হলে, সবসময় 10 হবে, কিন্তু "0xB"-কে 11 হিসাবে রূপান্তর করা হবে。
অন্যদিকে, একক হ্রাস অপারেটরটি মানকে নেতিবাচক করে (উদাহরণস্বরূপ 20 কে -20):
var iNum = 20; iNum = -iNum; alert(iNum); //আউটপুট "-20"
একক হাইপারেশন অপারেটরের মতো, একক হ্রাস অপারেটরও শ্রেণীকে আপেক্ষিক সংখ্যায় রূপান্তর করবে, এছাড়াও এই মানকে নেতিবাচক করবে।উদাহরণস্বরূপ:
var sNum = "20"; alert(typeof sNum); //আউটপুট "string" var iNum = -sNum; alert(iNum); //আউটপুট "-20" alert(typeof iNum); //আউটপুট "number"
উপরের কোডে, একক হ্রাস অপারেটর "-20" শ্রেণীর নাম "-20" হিসাবে রূপান্তর করবে (একক হ্রাস অপারেটর একক হাইপারেশন এবং একক হাইপারেশনের ব্যবহার একই হয়, কিন্তু এটি এই মানকে নেতিবাচক করবে)。
- পূর্ববর্তী পৃষ্ঠা ECMAScript রেফারেন্স ধরন
- পরবর্তী পৃষ্ঠা বিট অপারেটর