CoffeeScript JavaScript-এর উপর ভিত্তি করে তৈরি, তবে এর সিনট্যাক্স অনেক সংক্ষিপ্ত এবং পরিষ্কার। CoffeeScript-এর অপারেটর এবং এক্সপ্রেশনগুলো JavaScript-এর সাথে সামঞ্জস্যপূর্ণ, তবে এটি সহজে কোড লেখার সুযোগ দেয় এবং কোডকে আরও পাঠযোগ্য করে তোলে।
এখানে CoffeeScript-এ ব্যবহৃত কিছু সাধারণ অপারেটর এবং এক্সপ্রেশন এর বিশদ আলোচনা করা হলো।
1. গাণিতিক অপারেটর (Arithmetic Operators)
CoffeeScript-এ গাণিতিক অপারেটরগুলি JavaScript-এর মতোই কাজ করে। সেগুলির মধ্যে রয়েছে যোগ (+), বিয়োগ (-), গুণ (*), ভাগ (/), এবং মডুলাস (%) অপারেটর।
উদাহরণ:
x = 10
y = 5
sum = x + y # যোগ
diff = x - y # বিয়োগ
prod = x * y # গুণ
quot = x / y # ভাগ
mod = x % y # মডুলাস (শিশু)
console.log sum # 15
console.log diff # 5
console.log prod # 50
console.log quot # 2
console.log mod # 0
JavaScript-এ কম্পাইল হওয়া কোড:
var x, y, sum, diff, prod, quot, mod;
x = 10;
y = 5;
sum = x + y;
diff = x - y;
prod = x * y;
quot = x / y;
mod = x % y;
console.log(sum); // 15
console.log(diff); // 5
console.log(prod); // 50
console.log(quot); // 2
console.log(mod); // 0
2. তুলনা অপারেটর (Comparison Operators)
CoffeeScript-এ তুলনা অপারেটরগুলি JavaScript-এর মতোই কাজ করে, যেমন ==, !=, >, <, >=, <=, এবং ===।
উদাহরণ:
a = 10
b = 5
c = "10"
console.log a == b # false
console.log a != b # true
console.log a > b # true
console.log a < b # false
console.log a >= b # true
console.log a == c # true (যেহেতু CoffeeScript স্বয়ংক্রিয়ভাবে টাইপ কনভার্শন করে)
console.log a === c # false (Strict equality)
JavaScript-এ কম্পাইল হওয়া কোড:
var a, b, c;
a = 10;
b = 5;
c = "10";
console.log(a == b); // false
console.log(a != b); // true
console.log(a > b); // true
console.log(a < b); // false
console.log(a >= b); // true
console.log(a == c); // true (Type coercion happens)
console.log(a === c); // false (Strict equality)
3. লজিক্যাল অপারেটর (Logical Operators)
CoffeeScript-এ && (AND), || (OR), এবং ! (NOT) লজিক্যাল অপারেটর ব্যবহার করা হয়।
উদাহরণ:
x = true
y = false
console.log x && y # false (AND অপারেটর)
console.log x || y # true (OR অপারেটর)
console.log !x # false (NOT অপারেটর)
JavaScript-এ কম্পাইল হওয়া কোড:
var x, y;
x = true;
y = false;
console.log(x && y); // false
console.log(x || y); // true
console.log(!x); // false
4. নেগেটিভ (Unary Operators)
CoffeeScript-এ নেগেটিভ অপারেটর ! (NOT) এর মাধ্যমে কাজ করা যায়, যা কোনো মানের বিপরীত ফলাফল প্রদান করে।
উদাহরণ:
x = true
y = false
console.log !x # false
console.log !y # true
JavaScript-এ কম্পাইল হওয়া কোড:
var x, y;
x = true;
y = false;
console.log(!x); // false
console.log(!y); // true
5. বিটওয়াইজ অপারেটর (Bitwise Operators)
CoffeeScript-এ বিটওয়াইজ অপারেটর ব্যবহার করা যায়, যেমন & (AND), | (OR), ^ (XOR), ~ (NOT), << (Left Shift), >> (Right Shift), এবং >>> (Unsigned Right Shift)। এগুলো বাইনারি স্তরে কাজ করে।
উদাহরণ:
x = 5 # 0101 in binary
y = 3 # 0011 in binary
console.log x & y # 1 (0101 & 0011 = 0001)
console.log x | y # 7 (0101 | 0011 = 0111)
console.log x ^ y # 6 (0101 ^ 0011 = 0110)
JavaScript-এ কম্পাইল হওয়া কোড:
var x, y;
x = 5; // 0101 in binary
y = 3; // 0011 in binary
console.log(x & y); // 1 (0101 & 0011 = 0001)
console.log(x | y); // 7 (0101 | 0011 = 0111)
console.log(x ^ y); // 6 (0101 ^ 0011 = 0110)
6. টাইপ চেকিং (Type Checking Operators)
CoffeeScript-এ typeof এবং instanceof অপারেটর ব্যবহার করা হয় টাইপ চেক করার জন্য।
উদাহরণ:
x = 42
y = "Hello"
console.log typeof x # "number"
console.log typeof y # "string"
class Person
constructor: (@name) ->
p = new Person("Alice")
console.log p instanceof Person # true
JavaScript-এ কম্পাইল হওয়া কোড:
var x, y, p;
x = 42;
y = "Hello";
console.log(typeof x); // "number"
console.log(typeof y); // "string"
class Person {
constructor(name) {
this.name = name;
}
}
p = new Person("Alice");
console.log(p instanceof Person); // true
7. কন্ডিশনাল (Conditional Operator)
CoffeeScript-এ if-else কন্ডিশনাল অপারেটর এবং ? (tertiary/conditional) অপারেটর ব্যবহার করা যায়, যা JavaScript-এর সাথে সমান।
উদাহরণ:
x = 5
result = if x > 0 then "Positive" else "Negative"
console.log result # "Positive"
# বা তৃতীয় অপারেটর
result = x > 0 ? "Positive" : "Negative"
JavaScript-এ কম্পাইল হওয়া কোড:
var x, result;
x = 5;
result = x > 0 ? "Positive" : "Negative";
console.log(result); // "Positive"
8. ব্র্যাকেট (Grouping Expression)
CoffeeScript-এ এক্সপ্রেশন গ্রুপ করার জন্য সাধারণভাবে ব্র্যাকেট ব্যবহার করা হয়।
উদাহরণ:
result = (2 + 3) * 4
console.log result # 20
JavaScript-এ কম্পাইল হওয়া কোড:
var result;
result = (2 + 3) * 4;
console.log(result); // 20
সারাংশ
- গাণিতিক অপারেটর: CoffeeScript-এ সাধারণ গাণিতিক অপারেটর যেমন
+,-,*,/,%ব্যবহার করা যায়। - তুলনা অপারেটর:
==,!=,===,!==,>,<ইত্যাদি CoffeeScript এবং JavaScript-এ একইভাবে ব্যবহৃত হয়। - লজিক্যাল অপারেটর:
&&,||,!CoffeeScript-এ JavaScript-এর মতোই ব্যবহৃত হয়। - বিটওয়াইজ অপারেটর: CoffeeScript-এ বিটওয়াইজ অপারেটর যেমন
&,|,^,~,<<,>>ইত্যাদি ব্যবহার করা যায়। - টাইপ চেকিং: CoffeeScript-এ
typeofএবংinstanceofঅপারেটর ব্যবহৃত হয়।
CoffeeScript কোড লেখার জন্য JavaScript-এ প্রয়োজনীয় অপারেটর এবং এক্সপ্রেশনগুলো সরল এবং সংক্ষিপ্তভাবে প্রদান করে, যা ডেভেলপারদের জন্য কোড লেখার অভিজ্ঞতাকে আরও কার্যকর এবং দ্রুততর করে তোলে।
CoffeeScript, JavaScript-এর মতোই, মৌলিক গাণিতিক অপারেশনগুলোর জন্য অ্যারিথমেটিক অপারেটর সমর্থন করে। এর মধ্যে যোগ, বিয়োগ, গুণ, ভাগ, এবং অন্যান্য অপারেশন অন্তর্ভুক্ত থাকে। CoffeeScript-এ এই অপারেটরগুলো ব্যবহৃত হয় একইভাবে যেভাবে JavaScript-এ ব্যবহৃত হয়, তবে CoffeeScript সিনট্যাক্স অনেকটাই সরল এবং সংক্ষিপ্ত।
CoffeeScript-এ অ্যারিথমেটিক অপারেটরস
১. যোগ (Addition)
a = 5
b = 3
result = a + b
console.log result # আউটপুট: 8
২. বিয়োগ (Subtraction)
a = 5
b = 3
result = a - b
console.log result # আউটপুট: 2
৩. গুণ (Multiplication)
a = 5
b = 3
result = a * b
console.log result # আউটপুট: 15
৪. ভাগ (Division)
a = 10
b = 2
result = a / b
console.log result # আউটপুট: 5
৫. মোদুলাস (Modulus)
মোদুলাস অপারেটর a % b দিয়ে, a কে b দ্বারা ভাগ করার পর ভাগশেষ (remainder) পাওয়া যায়।
a = 10
b = 3
result = a % b
console.log result # আউটপুট: 1 (10 ভাগ 3 এর ভাগশেষ)
৬. ইনক্রিমেন্ট (Increment)
a = 5
a += 1
console.log a # আউটপুট: 6
৭. ডিক্রিমেন্ট (Decrement)
a = 5
a -= 1
console.log a # আউটপুট: 4
CoffeeScript-এ Arithmetic অপারেটরসমূহের ব্যবহার
অপারেটরগুলোর সংমিশ্রণ
আপনি একাধিক অ্যারিথমেটিক অপারেটর একসাথে ব্যবহার করতে পারেন।
a = 10
b = 5
c = 2
result = (a + b) * c / 2
console.log result # আউটপুট: 15
এই কোডে, প্রথমে a এবং b যোগ করা হয়, তারপর তার সাথে c গুণিত হয় এবং শেষে ২ দিয়ে ভাগ করা হয়।
ফ্লোটিং পয়েন্ট ডিভিশন
CoffeeScript-এ ভাগ (division) অপারেটর ব্যবহার করলে, যদি সংখ্যাগুলি পূর্ণসংখ্যা হয়, তবে আউটপুট ফ্লোটিং পয়েন্ট (decimal) সংখ্যা হিসেবে প্রদান করা হয়।
a = 5
b = 2
result = a / b
console.log result # আউটপুট: 2.5
সারাংশ
CoffeeScript-এর অ্যারিথমেটিক অপারেটরগুলো খুবই সহজ এবং JavaScript-এর মতোই কাজ করে। আপনি যোগ, বিয়োগ, গুণ, ভাগ, মোডুলাস ইত্যাদি অপারেটর ব্যবহার করে গাণিতিক গাণনা করতে পারবেন। CoffeeScript-এর সরল সিনট্যাক্স কোড লেখাকে আরও দ্রুত এবং কার্যকর করে তোলে।
CoffeeScript-এ Comparison Operators (তুলনামূলক অপারেটর) ব্যবহার করা হয় দুটি মানের মধ্যে তুলনা করতে। এগুলি JavaScript-এর মতোই কাজ করে, তবে CoffeeScript-এ এগুলির ব্যবহার খুবই সরল। এখানে CoffeeScript-এ ব্যবহৃত কিছু সাধারণ তুলনামূলক অপারেটর এবং তাদের ব্যাখ্যা দেয়া হলো।
CoffeeScript-এ সাধারণ Comparison Operators
১. সমান (Equal to) - ==
দুটি মান যদি সমান হয়, তবে এটি true রিটার্ন করে, অন্যথায় false।
x = 5
y = 5
console.log x == y # true
২. অসামান্য (Not equal to) - !=
দুটি মান যদি সমান না হয়, তবে এটি true রিটার্ন করে, অন্যথায় false।
x = 5
y = 10
console.log x != y # true
৩. কঠিন সমান (Strict equal to) - ===
এই অপারেটরটি মান এবং ডাটা টাইপ দুটি মিলিয়ে তুলনা করে। যদি মান এবং টাইপ দুইটি সমান হয়, তবে এটি true রিটার্ন করে।
x = 5
y = '5'
console.log x === y # false
৪. কঠিন অসামান্য (Strict not equal to) - !==
এই অপারেটরটি মান এবং টাইপ দুটি মিলিয়ে তুলনা করে এবং যদি তারা সমান না হয় (মানে টাইপ বা মান আলাদা হলে), তবে এটি true রিটার্ন করে।
x = 5
y = '5'
console.log x !== y # true
৫. বড় (Greater than) - >
এই অপারেটরটি চেক করে যে একটি মান অন্য মানের চেয়ে বড় কিনা। যদি বড় হয়, তবে এটি true রিটার্ন করে।
x = 10
y = 5
console.log x > y # true
৬. ছোট (Less than) - <
এই অপারেটরটি চেক করে যে একটি মান অন্য মানের চেয়ে ছোট কিনা। যদি ছোট হয়, তবে এটি true রিটার্ন করে।
x = 5
y = 10
console.log x < y # true
৭. বড় বা সমান (Greater than or equal to) - >=
এই অপারেটরটি চেক করে যে একটি মান অন্য মানের চেয়ে বড় বা সমান কিনা।
x = 10
y = 10
console.log x >= y # true
৮. ছোট বা সমান (Less than or equal to) - <=
এই অপারেটরটি চেক করে যে একটি মান অন্য মানের চেয়ে ছোট বা সমান কিনা।
x = 5
y = 10
console.log x <= y # true
CoffeeScript-এ Logical Operators (লজিক্যাল অপারেটর)
CoffeeScript-এ তুলনামূলক অপারেটরের পাশাপাশি Logical Operators (লজিক্যাল অপারেটর) ব্যবহার করা হয়, যেমন:
১. এন্ড (AND) - &&
দুটি শর্তই সত্য হলে true রিটার্ন করে।
x = 5
y = 10
console.log x > 0 && y > 5 # true
২. অর (OR) - ||
যেকোনো একটি শর্ত সত্য হলে true রিটার্ন করে।
x = 5
y = 2
console.log x > 10 || y > 1 # true
৩. নট (NOT) - !
একটি শর্তের উল্টো ফলাফল প্রদান করে।
x = false
console.log !x # true
CoffeeScript-এর বিশেষ বৈশিষ্ট্য
CoffeeScript JavaScript-এর তুলনায় তুলনামূলক অপারেটরের ব্যবহার আরও সরল করে। এটি JavaScript সিনট্যাক্সের একদম কাছাকাছি, তবে কিছুক্ষেত্রে কোড কম্প্যাক্ট এবং পাঠযোগ্যতা বাড়ায়।
সারাংশ
CoffeeScript-এ Comparison Operators ব্যবহার করা হয় মান তুলনা করতে এবং বিভিন্ন শর্ত পূরণ হলে সিদ্ধান্ত নেওয়ার জন্য। CoffeeScript এর অপারেটরগুলি JavaScript-এর মতোই কাজ করে, তবে এতে কোড লেখা সহজ এবং সংক্ষিপ্ত হয়।
CoffeeScript-এ logical operators ব্যবহার JavaScript-এর মতোই করা হয়। CoffeeScript কোডটি সংক্ষিপ্ত এবং সহজবোধ্য হওয়ার কারণে, এই operators ব্যবহারের ক্ষেত্রে আরও পরিষ্কার এবং কার্যকর কোড লেখা সম্ভব হয়।
লজিক্যাল অপারেটরগুলি সাধারনত boolean (সত্য অথবা মিথ্যা) মানের সঙ্গে কাজ করে এবং বিভিন্ন শর্ত পরীক্ষা করার জন্য ব্যবহার হয়। CoffeeScript-এ মূল তিনটি logical operators হল: and, or, এবং not।
CoffeeScript-এ Logical Operators
১. and (লজিক্যাল "এন্ড")
and অপারেটর দুটি শর্তের মধ্যে যদি উভয়ই সত্য হয়, তবে এটি true ফেরত দেয়।
উদাহরণ:
a = true
b = true
result = a and b # true
a = true
b = false
result = a and b # false
কম্পাইল হওয়া JavaScript:
var a = true;
var b = true;
var result = a && b; // true
a = true;
b = false;
result = a && b; // false
২. or (লজিক্যাল "অর")
or অপারেটরটি প্রথম শর্ত যদি সত্য হয় তবে এটি true ফেরত দেয়, যদি না হয়, তবে দ্বিতীয় শর্ত পরীক্ষা করে।
উদাহরণ:
a = false
b = true
result = a or b # true
a = false
b = false
result = a or b # false
কম্পাইল হওয়া JavaScript:
var a = false;
var b = true;
var result = a || b; // true
a = false;
b = false;
result = a || b; // false
৩. not (লজিক্যাল "নট")
not অপারেটরটি একটি শর্তের উল্টো মান ফেরত দেয়। যদি শর্ত সত্য হয়, তবে এটি false ফেরত দেয়, এবং যদি শর্ত মিথ্যা হয়, তবে এটি true ফেরত দেয়।
উদাহরণ:
a = true
result = not a # false
a = false
result = not a # true
কম্পাইল হওয়া JavaScript:
var a = true;
var result = !a; // false
a = false;
result = !a; // true
CoffeeScript-এ Logical Operators এবং Short-circuiting
JavaScript-এর মতো, CoffeeScript-এও short-circuiting হয়। এর মানে হল যে:
andঅপারেটরটি প্রথম শর্ত যদিfalseহয়, তবে দ্বিতীয় শর্ত পরীক্ষা করা হয় না।orঅপারেটরটি প্রথম শর্ত যদিtrueহয়, তবে দ্বিতীয় শর্ত পরীক্ষা করা হয় না।
উদাহরণ:
a = false
b = true
result = a and b # যেহেতু a false, b পরীক্ষা করা হয় না
a = true
b = false
result = a or b # যেহেতু a true, b পরীক্ষা করা হয় না
কম্পাইল হওয়া JavaScript:
var a = false;
var b = true;
var result = a && b; // যেহেতু a false, b পরীক্ষা করা হয় না
a = true;
b = false;
result = a || b; // যেহেতু a true, b পরীক্ষা করা হয় না
ব্যবহারিক উদাহরণ
১. ব্যাসিক শর্ত পরীক্ষা:
x = 5
y = 10
if x < y and x > 0
console.log "x is positive and smaller than y"
কম্পাইল হওয়া JavaScript:
var x = 5;
var y = 10;
if (x < y && x > 0) {
console.log("x is positive and smaller than y");
}
২. ডিফল্ট মান নির্ধারণ করা (Default Value Assignment):
user = null
name = user or "Guest"
console.log name # "Guest"
কম্পাইল হওয়া JavaScript:
var user = null;
var name = user || "Guest";
console.log(name); // "Guest"
সারাংশ
CoffeeScript-এ logical operators (like and, or, not) খুবই সহজ এবং শক্তিশালী, যা কোড লেখার সময় আপনার শর্তগুলো আরও পরিষ্কার এবং সংক্ষিপ্ত করার সুযোগ দেয়। এর মাধ্যমে আপনি boolean মানের পরীক্ষা করতে পারেন, শর্তের ভিত্তিতে সিদ্ধান্ত নিতে পারেন, এবং কোডের কার্যকারিতা উন্নত করতে পারেন। CoffeeScript এবং JavaScript-এর মধ্যে logical operators ব্যবহারে খুব বেশি পার্থক্য নেই, তবে CoffeeScript কোডটি অধিক সহজ এবং সংক্ষিপ্ত থাকে।
CoffeeScript একটি সংক্ষিপ্ত এবং পাঠযোগ্য সিনট্যাক্স প্রদান করে, যা JavaScript-এর এক্সপ্রেশনগুলোকে আরও সহজ করে তোলে। এই লেখায় CoffeeScript-এ Compound Assignment এবং Unary Operators এর ব্যবহার এবং তাদের উদাহরণ নিয়ে আলোচনা করা হবে।
Compound Assignment (যৌগিক অ্যাসাইনমেন্ট)
Compound Assignment অপারেটরগুলি একটি ভেরিয়েবলের মানকে আপডেট করার জন্য ব্যবহৃত হয়। এগুলো মূলত দুটি অপারেশন একসাথে সম্পাদন করে—অর্থাৎ, একটি ভেরিয়েবলে মান অ্যাসাইন করার সাথে সাথে সেই মানে কোনো গণনা বা অপারেশন করা হয়।
CoffeeScript-এ Compound Assignment এর সিনট্যাক্স JavaScript-এর মতোই থাকে, তবে এটি আরও সহজ এবং পরিষ্কার হয়।
১. Addition Assignment (+=)
x = 10
x += 5 # x এখন 15
console.log x
২. Subtraction Assignment (-=)
x = 10
x -= 3 # x এখন 7
console.log x
৩. Multiplication Assignment (*=)
x = 10
x *= 2 # x এখন 20
console.log x
৪. Division Assignment (/=)
x = 20
x /= 4 # x এখন 5
console.log x
৫. Modulus Assignment (%=)
x = 10
x %= 3 # x এখন 1 (10 % 3)
console.log x
Unary Operators (একক অপারেটর)
Unary Operators শুধুমাত্র একটি একক অপার্যান্ড (operand) নিয়ে কাজ করে। CoffeeScript-এ এগুলোর ব্যবহার JavaScript-এর মতোই, তবে কোডটি আরও পরিষ্কার এবং সহজ হয়।
১. Unary Plus (+)
+ একক অপারেটরটি মানকে একটি পজিটিভ সংখ্যা হিসেবে কনভার্ট করে।
x = "5"
x = +x # x এখন 5 (স্ট্রিং থেকে নাম্বারে রূপান্তর)
console.log x
২. Unary Minus (-)
- একক অপারেটরটি একটি সংখ্যার প্রতিপদ (negative) তৈরি করে।
x = 5
x = -x # x এখন -5
console.log x
৩. Increment (++)
++ অপারেটরটি ভেরিয়েবলের মান এক এক করে বাড়িয়ে দেয়।
x = 10
x++ # x এখন 11
console.log x
৪. Decrement (--)
-- অপারেটরটি ভেরিয়েবলের মান এক এক করে কমিয়ে দেয়।
x = 10
x-- # x এখন 9
console.log x
৫. Logical NOT (!)
! একক অপারেটরটি একটি বুলিয়ান মানকে বিপরীত করে। এটি একটি মানকে true থেকে false বা false থেকে true পরিবর্তন করে।
x = true
x = !x # x এখন false
console.log x
৬. Delete (delete)
delete অপারেটরটি একটি অবজেক্টের প্রোপার্টি মুছে ফেলার জন্য ব্যবহৃত হয়।
person = { name: "Alice", age: 30 }
delete person.age
console.log person # { name: "Alice" }
৭. Typeof (typeof)
typeof একক অপারেটরটি একটি মানের ধরনের পরীক্ষা করে।
x = 5
console.log typeof x # "number"
CoffeeScript-এ Compound Assignment এবং Unary Operators-এর সুবিধা
- কোডের সংক্ষিপ্ততা: CoffeeScript-এ এই অপারেটরগুলোর ব্যবহার কোডকে আরও সংক্ষিপ্ত এবং পরিষ্কার করে তোলে, যেটি JavaScript কোডের তুলনায় অনেক বেশি পাঠযোগ্য।
- কমপ্যাক্ট সিনট্যাক্স: Compound Assignment এবং Unary Operators ব্যবহার করে এক লাইনে অনেক অপারেশন সম্পন্ন করা যায়।
- বাজারে জনপ্রিয়: CoffeeScript-এর এই সুবিধাগুলো JavaScript ডেভেলপারদের জন্য পরিচিত এবং সহজলভ্য।
উদাহরণ: Compound Assignment এবং Unary Operators
x = 5
x += 3 # 8
x *= 2 # 16
x -= 5 # 11
# Unary Operators
y = 10
y++ # 11
z = -y # -11
# Logical NOT
flag = true
flag = !flag # false
console.log x, y, z, flag
JavaScript-এ কম্পাইল হওয়া কোড:
var x, y, z, flag;
x = 5;
x += 3; // 8
x *= 2; // 16
x -= 5; // 11
// Unary Operators
y = 10;
y++; // 11
z = -y; // -11
// Logical NOT
flag = true;
flag = !flag; // false
console.log(x, y, z, flag);
সারাংশ
CoffeeScript-এ Compound Assignment এবং Unary Operators ব্যবহার করে কোড আরও সহজ, সংক্ষিপ্ত, এবং পরিষ্কার করা যায়। এগুলি কোডের কার্যকারিতা বৃদ্ধি করে এবং ডেভেলপারদের কোড লেখার অভিজ্ঞতা আরও মসৃণ করে তোলে। CoffeeScript-এ এই অপারেটরগুলোর সুবিধা গ্রহণ করে আপনি দ্রুত এবং কার্যকরী কোড লিখতে পারবেন।
Read more