জাভাস্ক্রিপ্ট টিউটোরিয়াল-শিখুন গল্পে গল্পে সাথে 1100+ Exercise

  • জাভাস্ক্রিপ্ট পরিচিতি-Introduction to JavaScript
  • প্রোগ্রামিং শুরু করতে কতটুকু গণিত লাগে?
  • প্রোগ্রামিং শুরু করতে কতটুকু ইংরেজি জানা লাগে?
  • ভালো প্রোগ্রামার কিভাবে হবো? [+৭টি গুরুত্বপূর্ণ টিপস]
  • object-এর অবজেকশন
  • গার্ডওয়ালা property এর key
  • অবজেক্টের তালা-চাবি
  • Freeze-এ বন্দি অবজেক্ট

গার্ডওয়ালা property এর key 


গরিবের বাসায় সবাইকে সরাসরি স্বাগত জানানো যায়। চাইলে যে কেউ চলে আসতে পারে, মশা-মাছি, চাঁদের আলো, সবকিছুই চলে আসতে পারে। কিন্তু বড়লোকের বাসায় ঢুকতে গেলে পাঁচটা গেট পার হয়ে দশজন সিকিউরিটি গার্ডের জেরা পার হয়ে তারপর অ্যাক্সেস পেতে হয়। 


আবার একেক গেটে একেকভাবে চেক করে। 


অবজেক্টও একধরনের বড়লোকি ব্যাপার। তার ভিতরের কোনো ডাটা পেতে চাইলে একটু সিস্টেম করে চেষ্টা-তদবির করতে হয়। যেমন ধর, নিচে person নামে একটা অবজেক্ট আছে। এইটার কোনো প্রোপার্টি অ্যাক্সেস করতে চাইলে কী করতে হবে?


জাস্ট অবজেক্টের নামের পরে ডট (.) চিহ্ন দিয়ে এবং প্রোপার্টির নাম ব্যবহার করে ভ্যালু অ্যাক্সেস করতে পারবি।


  const person = {
   name: 'sodor uddain',
   age: 25,
   profession: 'developer',
   salary: 25000,
   married: true
  };

  console.log(person.profession); 

Output: developer


এইভাবে অবজেক্টের নামের পর ডট চিহ্ন দেয়ার পর প্রোপার্টি এর নাম (key) দেয়াকে বলে ডট নোটেশন। 


ডট নোটেশনের কাজগুলা সবই ব্র্যাকেট নোটেশন দিয়ে করা যায়। তবে কিছু কিছু স্পেশাল কেইস আছে, যেগুলার মধ্যে ডট নোটেশন ইউজ করা যায় না। তখন আরেকটা ডিফারেন্ট সিস্টেম করতে হয়। 


যেমন, প্রোপার্টির নামের মধ্যে স্পেস বা বিশেষ চিহ্ন ব্যবহার করে ডিক্লেয়ার করা হয়, তখন সেটাকে কোটেশনের মধ্যে রাখতে হয়। এই সকল ক্ষেত্রে Bracket notation ব্যবহার করা হয়। 


ব্র্যাকেট নোটেশন বলতে বুঝায় অবজেক্টের নামের পর ডট চিহ্ন না দিয়ে একটা ব্র্যাকেট দিবি। তারপর সেটার মধ্যে স্ট্রিং হিসেবে প্রোপার্টির নাম (key) লিখে দিবি। নিচে দুইটা প্রোপার্টির মান এইভাবে অ্যাক্সেস করা হইছে।


  const person = {
   name: 'sodor uddain',
   age: 25,
   profession: 'developer',
   salary: 25000,
   married: true,
   'fav places': ['bandarban', 'saintmartin', 'kuakata']
  };

  console.log(person['married']); 
  console.log(person['fav places']); 

Output: 
true
['bandarban', 'saintmartin', 'kuakata']


BracketNotation ব্যবহার করতে হলে প্রোপার্টির নামকে সিঙ্গেল কোটেশন বা ডাবল কোটেশনের মধ্যে রাখতে হবে। এ ছাড়া যখন প্রোপার্টির নাম একটি ভেরিয়েবলের মধ্যে থাকে, তখনও bracketnotation ব্যবহার করা হয়।


  const propertyName = 'profession';
  console.log(person[propertyName]); 

Output: developer


যখন প্রোপার্টির নামটি একটি সাধারণ স্ট্রিং এবং বিশেষ কোনো চিহ্ন বা স্পেস থাকে না, তখন dot notation ব্যবহার করা সহজ এবং সুবিধাজনক। অন্যদিকে, যখন প্রোপার্টির নামটি বিশেষ চিহ্ন, স্পেস, বা একটি ভেরিয়েবলের মধ্যে থাকে, তখন bracket notation ব্যবহার করতে হয়।


প্রোপার্টির মান বের করতে পারলে খুব সহজেই সেটার মান চেইঞ্জ করতে পারবি। জাস্ট বামপাশে ডট নোটেশন বা ব্র্যাকেট নোটেশন দিয়ে প্রোপার্টির মান অ্যাক্সেস করার মতো করে লিখবি। তারপর ডানপাশে ভেরিয়েবল সেট করার মতো করে সমান চিহ্ন দিয়ে নতুন মান বসিয়ে দিবি। তাহলেই হবে। 


  const cricketer = {
   position: 4   specialty: "batter",
   age: 24,
   runs: 8000
  };

  console.log(cricketer.position); 
  console.log(cricketer['runs']); 
   
  cricketer.position = 1  cricketer['runs'] = 9000;
   
  console.log(cricketer['position']); 
  console.log(cricketer.runs);

Output: 
4
8000
1
9000


এখন থেকে যেমন দরকার, তেমনে অবজেক্টের প্রোপার্টির মান (value) অ্যাক্সেস করতে পারবি, আবার চেইঞ্জও করতে পারবি। 



ঘরের ভিতর ঘর মশা আমার পর

একটা অবজেক্টের প্রোপার্টির মান তুই বের করতে পারস। তবে অবজেক্টের কোনো প্রোপার্টির মান যদি আরেকটা অবজেক্ট হয়, তাহলে সেটার প্রোপার্টির মান কীভাবে বের করবি?


কিছুই না। খুবই সিম্পলভাবে ধাপে ধাপে চিন্তা করবি। যেমন নিচের অবজেক্ট


  const college = {
    name: 'vnc',
    class: ['11', '12'],
    events: ['science fair', 'bijoy dibos', '21 feb'],
    unique: {
      color: 'blue',
        result: {
           gpa: 5,
           merit: 'top'
        }
       }
  };

  console.log(college.unique.color); 
  console.log(college.unique.result.gpa);
  console.log(college.events[2]);

Output: 
blue
5
21 feb


এইবার একটু ধাপে ধাপে চিন্তা কর। প্রথমে ওপরের অবজেক্টের মধ্যে তুই যদি college.unique লিখস, তাহলে সেটার আউটপুট কী দিবে? আউটপুট কিন্তু একটা অবজেক্ট। এখন তুই নরমালভাবে চিন্তা কর, college.unique পুরাটা একটা অবজেক্ট। সেটার মধ্যে তুই color নামক একটা প্রোপার্টির মান বের করতে চাস। অর্থাৎ college.unique একটা অবজেক্ট, সেটার মধ্যে color নামক প্রোপার্টির মান বের করতে চাইলে সেটার নামের পর ডট চিহ্ন দিয়ে color লিখবি। সো, আগে লিখছিলি college.unique, এখন এইটার পর ডট দিয়ে color লিখবি, তখন college.unique.color হবে। আর তখন আউটপুট হিসেবে blue পাবি। 


একটু আশেপাশে তাকালে দেখবি college.unique-এর আরেকটা প্রোপার্টি আছে। যেটার নাম result। এখন তুই যদি সেই college.unique-এর মধ্যে result নামক প্রোপার্টির মান বের করতে চাস, তাহলে এইটার নামের পর ডট দিয়ে result লিখবি। সো, আগে লিখছিলি college.unique, এখন এইটার পর ডট দিয়ে রেজাল্ট লিখবি, তখন college.unique.result হবে। 


কপালের কী খেলা। এই resultও একটা অবজেক্ট। এখন তুই এইটার মধ্যে যদি gpa-এর মান পেতে চাস, তাহলে college.unique.result-এর পর ডট দিয়ে gpa লিখবি। তখন হবে college.unique.result.gpa, আর তখন আউটপুট হিসেবে পাবি 5। 


সো, যত ভিতরেই মান থাকুক না কেন, তুই চাইলে দরকার অনুসারে ডট নোটেশন বা ব্র্যাকেট নোটেশন দিয়ে ভিতরে যেতে থাকবি, আর যেটার মান দরকার, সেটা খুঁজে বের করে ফেলতে পারবি। 


ওপরের উদাহরণে college অবজেক্টের মধ্যে events নামে একটা প্রোপার্টি আছে। যেটার মান একটা array। এখন তোর যদি মনে হয়, সেই array-এর 2 ইনডেক্সের উপাদান দরকার, তাহলে জাস্ট array পাওয়ার জন্য college.events লিখবি। তারপর array পেয়ে গেলে সেটার পর থার্ড ব্র্যাকেট দিয়ে ইনডেক্সের মান দিয়ে দিবি নিচের মতো করে, তাহলেই হবে। 


JavaScript Object Property Practice:

  1. তুই player অবজেক্ট তৈরি করবি। নাম, বয়স, স্পোর্টস, টিম ইত্যাদি প্রোপার্টি থাকবে। তারপর সেই অবজেক্ট থেকে dot notation দিয়ে তার টিমের নাম console কর।
  2. একটা laptop অবজেক্ট তৈরি কর। তার brand, price, hardDisc, ram, screenSize ইত্যাদি প্রোপার্টি থাকবে। dot notation দিয়ে screenSize বের করে দেখ।
  3. তোর একটা প্রিয় জায়গা আছে, যার নাম favPlace। তার মধ্যে কিছু তথ্য আছে। যেমন, name: "Cox's Bazar", distance: "400km", আর popularity: "high"। bracket notation দিয়ে popularity প্রোপার্টি console log কর।
  4. তুই একটা phone অবজেক্ট বানাস। সেখানে brand, color, price প্রোপার্টি থাকে। ব্রান্ড দিস Nokia, কালার black আর দাম 5000। ব্র্যাকেট নোটেশন দিয়ে দাম বের কর।
  5. একটা library অবজেক্ট তৈরি কর। তার মধ্যে name Public Library, location Dhaka আর books: 5000 প্রোপার্টি থাকবে। dot notation দিয়ে location বের কর।
  6. একটা movie অবজেক্ট বানা। যার title Inception, director Nolan, rating 9। bracket notation দিয়ে rating প্রোপার্টি বের কর।
  7. একটা college অবজেক্ট বানা। যার নাম ndc, স্থাপিত (established) 1949, গ্রুপ (groups) ['Science', 'Arts', 'Commerce']। এইবার তোর কাজ হবে সেকেন্ড groups-এর মান অর্থাৎ 1 ইনডেক্সের মান বের কর।
  8. একটা family অবজেক্ট বানা। যার মধ্যে একটা প্রোপার্টি হবে father সেটার মানও আরেকটা অবজেক্ট এবং ফাদারের মধ্যে তোর আব্বুর নাম, বয়স এবং পেশা (profession) থাকবে। একইভাবে family অবজেক্টে mother নামে আরেকটা প্রোপার্টি থাকবে, সেই প্রোপার্টির মানও আরেকটা অবজেক্ট। আর mother-এর অবজেক্টের মধ্যে তোর আম্মুর নাম, বয়স আর পেশা থাকবে। এখন তোর কাজ হচ্ছে, mother-এর age প্রোপার্টি বের কর। তারপর তোর আব্বুর age-এর মান বের কর। তারপর এই দুইটা age-এর যোগফল বের করে সেটা আউটপুট হিসেবে দেখা।


Previous PageNext Page