JavaScript-এ অবজেক্টে আইটেম যোগ করার দুটি পদ্ধতি আছে:
- ডট নোটেশন:
object.thingToAdd - ব্র্যাকেট নোটেশন:
object['thingToAdd']
ডট নোটেশন
প্রথমে ডট নোটেশন দেখি:
let dog = { name: "Naya", age: "2", color: "black", } // ডগ অবজেক্টে আইটেম যোগ করুন dog.breed = "Rottweiler mix" // কনসোলে অবজেক্ট লগ করুন console.log(dog) // { name: "Naya", age: "2", color: "black", breed: "Rottweiler mix", } এটিই ডট নোটেশন।
ব্র্যাকেট নোটেশন
ব্র্যাকেট নোটেশনে অবজেক্টে প্রোপার্টি যোগ করার কম লিমিটেশন আছে। আগের ডগ অবজেক্টটি নিই:
let dog = { name: "Naya", age: "2", color: "black", } এখন ব্র্যাকেট নোটেশন দিয়ে একটি প্রোপার্টি এবং ভ্যালু যোগ করি:
dog["weight"] = "34kg" console.log(dog) // { name: "Naya", age: "2", color: "black", weight: "34kg", } দেখতে পাচ্ছেন, এই নির্দিষ্ট উদাহরণে ডট নোটেশন মতোই কাজ করে।
এখন দুটি মেথড তুলনা করি।
ডট নোটেশন বনাম ব্র্যাকেট নোটেশন
ডট নোটেশন ব্যবহার করে নতুন প্রোপার্টি নাম হিসেবে একটি নাম্বার যোগ করার চেষ্টা করুন:
// ডট নোটেশন dog.1 = "Property 1" console.log(dog) // Uncaught SyntaxError: Unexpected number ওপস, এরর! কারণ ডট নোটেশনে আপনি প্রোপার্টি নামে নাম্বার ব্যবহার করতে পারবেন না।
কিন্তু ব্র্যাকেট নোটেশনে আপনি নাম্বার ব্যবহার করতে পারেন, যতক্ষণ না আপনার আইডেন্টিফায়ার স্ট্রিং হিসেবে ফরম্যাট করা থাকে:
// ব্র্যাকেট নোটেশন dog["1"] = "Property 1" console.log(dog) // { 1: "Property 1", age: "2", color: "black", name: "Naya" } আবার দেখতে পেলেন, ব্র্যাকেট নোটেশন ডট নোটেশন চেয়ে বেশি ফ্লেক্সিবল।
কোনটি ব্যবহার করা উচিত?
যখনই সম্ভব ডট নোটেশন ব্যবহার করা ভালো প্র্যাকটিস কারণ এটি পড়তে সহজ। কিন্তু যখনই আপনাকে একটি অবজেক্টে প্রোপার্টি যোগ করতে হয়, এবং প্রোপার্টিটি নাম্বার, স্পেশাল সিম্বল, অথবা যেকোনো রিজার্ভড কিওয়ার্ড দিয়ে শুরু হতে হয়, তবে ব্র্যাকেট নোটেশন ব্যবহার করুন।
ডট নোটেশন:
- প্রোপার্টি আইডেন্টিফায়ার (নাম) শুধু অ্যালফানিউমেরিক (a-z) ক্যারেক্টার, আন্ডারস্কোর (
_), বা$কন্টেইন করতে পারে। - প্রোপার্টি আইডেন্টিফায়ার নাম্বার দিয়ে শুরু হতে পারে না।
- প্রোপার্টি আইডেন্টিফায়ার ভেরিয়েবল কন্টেইন করতে পারে না।
ব্র্যাকেট নোটেশন:
- প্রোপার্টি আইডেন্টিফায়ার (নাম) স্ট্রিং ভ্যালু টাইপ হতে হবে অথবা এমন একটি ভেরিয়েবল যা রেফারেন্স করে একটি স্ট্রিং।
- আইডেন্টিফায়ারে স্পেস ব্যবহার করা যায়
[" property"]। - স্ট্রিং আইডেন্টিফায়ার নাম্বার দিয়ে শুরু হতে পারে
["1st"]।