JavaScript Bangla Part-3: JavaScript Operator Basics

JavaScript-Operator

JavaScript এ Operators কি ?

JavaScript এ Operators হচ্ছে কতগুলো symbol যা JavaScript Language দিয়ে কিছু নির্দিষ্ট mathematical, relational এবং logical সহ আরো অনেক ধরণের কার্য (operation) সম্পাদন করার নির্দেশনা পাঠায়। এবং নির্দেশনা অনুযায়ী JavaScript সেই নির্দিষ্ট কাজের ফলাফল প্রদর্শন করে।

JavaScript এ Operators কত প্রকার? এবং কি কি ?

JavaScript এ Operator মূলত ১১ ধরণের, নিচে Operator গুলোর লিস্ট দেয়া হলো :

  1. Arithmetic Operators বা গাণিতিক কাজের Operator: (+,-,*,/,%,**)
  2. Assignment Operators বা JavaScript Variable এ যেকোনো মান (Value) সংরক্ষণের Operator : (=)
  3. Bitwise Operators বা JavaScript এ Binary কাজের Operator :-(&,|,^,~,<<,>>,<<=,>>=,>>>=,&=, ^=,|=)
  4. Comparison Operators বা দুই বা ততোধিক Value এর মধ্যে তুলনা করার Operator :-(==,!=,===,!==,<,>,<=,>=)
  5. Incrementing/Decrementing Operators বা 1 করে বৃদ্ধি বা কমানোর Operator:-(++,- -)
  6. Logical Operators বা একাধিক অবস্থার বা condition এর উপর ভিত্তি করে সিদ্ধান্ত নেওয়ার Operator:-(&&,||,!)
  7. String Operators বা এক বা একাধিক string এর সাথে জোড়া লাগানোর Operator:-(+)
  8. Type Operators বা কোনো একটা JavaScript Variable কোনো class এর Instance কিনা তা চেক করার operator:-(instanceof) বা কোনো একটা variable বা value এর type কি তা চেক করার জন্য typeof Operator
  9. Ternery Operator বা if..else কার্য সম্পাদন করার অপারেটর।
  10. delete Operator: বা কোনো একটা Object এর নির্দিষ্ট property delete করার জন্য delete operator ব্যবহৃত হয়।
  11. in Operator: Object এর নির্দিষ্ট property খুঁজে বের করার জন্য ব্যবহৃত হয়।

JavaScript এ Operand কি ?

Operator এর দুই পাশে যেই সব variable অথবা value থাকে, JavaScript অথবা যেকোনো Programming Language এর পরিভাষায় একে Operand বলে। নিচের উদাহরণ থেকে বুঝে নেয়া যাক।

<!DOCTYPE html>
<html>
<body>
<script>
var a=5;
document.write(a+5);
</script>
</body>
</html>

এখানে plus sign (+) এর দুই পাশের যথাক্রমে a এবং 5 এই দুইটা ই Operand আর plus sign (+) টি হচ্ছে Operator

Operator Precedence কি?

JavaScript এ Operator Precedence হচ্ছে কিছু rules বা নিয়মের সমষ্টি যা দিয়ে JavaScript এ যে কোনো কাজে কোন কাজটি আগে সম্পাদিত হবে তা নির্ধারিত হয়। নিচের উদাহরণ থেকে বুঝে নেয়া যাক।

<!DOCTYPE html>
<html>
<body>
<script>
document.write(1 + 5 * 3); //Output 16 But why not 18?
</script>
</body>
</html>

ব্যাখ্যা: উপরের কোডের ফলাফল 18 না এসে 16 আসবে। এর মূল কারণ হচ্ছে, আমাদের এখানে ব্যবহৃত দুটি operator এর মধ্যে Operator Precedence Rules অনুযায়ী addition (“+”) Operator টির চেয়ে multiplication (“*”) Operator টি বেশি অগ্রাধিকার প্রাপ্ত । এবার নিচের আরেকটি উদাহরণ লক্ষ্য করা যাক :

<!DOCTYPE html>
<html>
<body>
<script>
document.write((1 + 5) * 3); //Output 18 But why not 16?
</script>
</body>
</html>

ব্যাখ্যা: উপরের উদাহরণে Parentheses “()” Operator টি Multiplication “*” Operator এর চেয়ে বেশি অগ্রাধিকার প্রাপ্ত হওয়ায়, প্রথমে Parentheses এর মধ্যের addition এর কাজটি সম্পাদিত হয়। তারপর multiplication “*” এর কাজটি সম্পাদিত হয়।

Operator Associativity কি?

Operator Associativity হচ্ছে, JavaScript অথবা যেকোনো Programming Language এ parentheses অনুপস্থিতিতে একই Precedence এর Operator গুলোর মধ্যে কোন Operator টি অগ্রাধিকার প্রাপ্ত হবে তা নির্ধারণ করা।

JavaScript এ Operator Associativity কত প্রকার? এবং কি কি ?

JavaScript এ Operator Associativity দুই প্রকার :

  1. Right to Left (অর্থাৎ: ডানদিকের Operator অগ্রগণ্য হবে। )
  2. Left to Right (অর্থাৎ: বামদিকের Operator অগ্রগণ্য হবে। )

নিম্নে JavaScript Operator Precedence এর একটা তালিকা দেওয়া হলো নিচের table এ Operator Precedence 1 অগ্রগন্যতা সবচেয়ে বেশি এভাবে এক এক করে নিচে যাবে। এই তালিকাটি মনে রাখা খুব জরুরী। তা না হলে বিভিন্ন Mathematical এবং Programming এর সমস্যা সমাধান করতে গেলে কাঙ্খিত ফলাফল না ও পেতে পারেন।

Table 1 operator precedence and associativity in JavaScript

OperatorOperator UseOperator AssociativityOperator Precedence
()Method/function call, groupingLeft to rightHighest — 1
[]Array accessLeft to right1
.Object property accessLeft to right1
++IncrementRight to left2
DecrementRight to left2
NegationRight to left2
!Logical NOTRight to left2
~Bitwise NOTRight to left2
deleteRemoves array value or object propertyRight to left2
newCreates an objectRight to left2
typeofReturns data typeRight to left2
voidSpecifies no value to returnRight to left2
/DivisionLeft to right3
*MultiplicationLeft to right3
%ModulusLeft to right3
+PlusLeft to right4
+String ConcatenationLeft to right4
SubtractionLeft to right4
>>Bitwise right-shiftLeft to right5
<<Bitwise left-shiftLeft to right5
>, >=Greater than, greater than or equal toLeft to right6
<, <=Less than, less than or equal toLeft to right6
==EqualityLeft to right7
!=InequalityLeft to right7
===Identity operator — equal to (and same data type)Left to right7
!==Non-identity operator — not equal to (or don’t have the same data type)Left to right7
&Bitwise ANDLeft to right8
^Bitwise XORLeft to right9
|Bitwise ORLeft to right10
&&Logical ANDLeft to right11
||Logical ORLeft to right12
?:Conditional branchLeft to right13
=AssignmentRight to left14
*=, /=, %=, +=,, -=, <<=, >>=, >>>=, &=, ^=, |=Assignment according to the preceding operatorRight to left14

Leave A Reply

Your email address will not be published. Required fields are marked *