এসইও – লিঙ্ক বিল্ডিং । SEO – Link Building

স্বর্ণা আখতার

 

লিঙ্ক বিল্ডিং এস ই ওর গুরুত্বপূর্ণ কাজগুলোর মধ্যে অন্যতম যার মাধ্যমে ওয়েব সাইট এর ভিজিটর বৃদ্ধির পাশাপাশি গুগল এ এর রাঙ্ক বৃদ্ধিতেও কাজ করা যায়। সর্বোপরি ভাবে বলা যায়, লিঙ্ক বিল্ডিং শুধুমাত্র ওয়েবসাইট এর জনপ্রিয়তা বৃদ্ধিতেই সহায়তা করে।

কিভাবে লিঙ্ক বিল্ডিং করবেন

লিঙ্ক বিল্ডিং এর বিভিন্ন নিয়ম-কানুন বা পদ্ধতি প্রচলিত আছে। নিচে কিছু পদ্ধতি সম্পর্কে সংক্ষিপ্ত আলোচনা করা হল,

  1. ওয়েবসাইট কে বিভিন্ন ডিরেক্টরিতে সাবমিট করুন। তবে কোন অটোম্যাটিক উপায় অবলম্বন করবেন না এতে গুগল আপনার রাঙ্ক কমিয়ে দিতে পারে।
  2. অনেক মুক্ত ডিরেক্টরি আছে যেমন, “dmog.org, yahoo.com” এগুলোতে আপনার সাইটটিকে অন্তর্ভুক্ত করুন। যার ফলে অন্যান্য যেসব সার্চ ইঞ্জিন আছে সেগুলোতে আপনার সাইট এর জনপ্রিয়তা বৃদ্ধি পাবে।
  3. আপনার ওয়েবপেজ এর জন্য উন্নত মানের আর্টিকেল লিখুন যা ভিজিটর ধরে রাখতে সহায়তা করবে। এবং যার ফলে, আপনার ওয়েবসাইট এর বাউন্স রেট কম হবে।
  4. লিঙ্ক বিনিময় কাজে অংশগ্রহণ করুন। যার মাধ্যমে আপনার সাইট এ ভিজিটর বৃদ্ধি পেতে পারে। তবে একপাক্ষিক হলেই বেশি ভাল হয়।
  5. আপনার সাইট এর জনপ্রিয়তা বৃদ্ধিতে ফোরামগুলোতে সিগনেচার হিসাবে আপনার লিঙ্ক রেখে আসতে পারেন ।
  6. বুকমারকিং সাইটগুলোতে আপনার সাইট এর লিঙ্ক সাবমিট করতে পারেন।
  7. ব্লগিং সাইটগুলোতে ভাল মানের আর্টিকেল লিখতে পারেন এবং সেখানে আপনার সাইটএর লিঙ্ক বিজ্ঞাপন হিসাবে দিতে পারেন।
  8. সবসময় আপনার সাইট এর ভিজিটরদের ভাল মানের সেবা সরবরাহ করুন এবং তাদেরকে ব্যাস্ত রাখার চেষ্টা করুন।

 

লিঙ্ক বিল্ডিং এ আরও কিছু উপায় আছে কিন্তু সেগুলোতে আপনাকে অর্থ খরচ করতে হতে পারে। এমন কিছু পদ্ধতি হল,

  1. কিছু উচ্চ মানে ওয়েব সাইট কিনুন যেগুলোতে আপনি আপনার লিঙ্কগুলোকে রেখে আসতে পারবেন।
  2. গুগল এডওয়ার্ড এ যোগ দিতে পারেন। এর মাধ্যমে আপনার সাইট এর ভিজিটর নিশ্চিতভাবে বৃদ্ধি পেতে পারে।

পরিশেষে বলা যায় যে, ওয়েব সাইটএর ভিজিটর বৃদ্ধিতে লিঙ্ক বিল্ডিং অনেক অবদান রাখে। এস ই ওর অনেক পদ্ধতি প্রচলিত থাকলেও লিঙ্ক বিল্ডিং এ একমাত্র উপায় যেটা দীর্ঘমেয়াদি জনপ্রিয়তা বয়ে আনতে কাজ করে থাকে।

 

এসইও – ওয়েব সাইট ডোমেন । SEO – Web Site Domain

নয়ন চন্দ্র দত্ত

 

আমরা যদি সার্চ ইঞ্জিন অপটিমাইজেশনকে ১০০% ধরি এবং একে বিভিন্ন ভাগে ভাগ করি তাহলে দেখা যাবে যে এর মধ্যে প্রায় ২০% ই হলো ডোমেন নেইম এর তথ্য। তাহলে চিন্তা করুন ডোমেনের নামকরণ বা এর সঠিক তথ্য সার্চ ইঞ্জিন অপটিমাইজেশনে কতটা গুরুত্বপূর্ণ। তাই এসইও করার সময় প্রথমেই আপনাকে নজর দিতে হবে আপনার ডোমেইনের নামের দিকে। লক্ষ্য রাখতে হবে আপনি যে বিষয় নিয়ে এসইও করতে যাচ্ছেন সে বিষয় এর সাথে আপনার ডোমেইন নামের মিল থাকে।

 

যখনই আপনি ইন্টারনেট এর মাধ্যমে একটি ব্যবসা শুরু করার চিন্তা করছেন, আমার মনে হয় যে আপনি প্রথমে আপনার ওয়েবসাইট ডোমেইন নাম নিয়ে ভাববেন। একটি ডোমেন নাম চয়েজ করার আগে আপনার নিম্নলিখিত বিষয়গুলো বিবেচনা করা উচিতঃ

  1. আপনার লক্ষ্য পাঠকবর্গ কারা হবে?
  2. আপনি তাদের কাছে কি বিক্রি করতে মনস্থ করেছেন। এটা কি একটা বাস্তব আইটেমট বা শুধু টেক্সট কন্টেন্ট ?
  3. কি আপনার ব্যবসায়িক ধারণাকে ইউনিক করে তুলবে অথবা বাজারে ইতিমধ্যে available যা অন্য সব কিছুর থেকে আলাদা হবে ?

অনেকে ডোমেইন এর মধ্যে কীওয়ার্ড থাকাকে গুরুত্বপূর্ণ মনে করে। ডোমেইন নামে কীওয়ার্ড বা মূলশব্দ সাধারণত গুরুত্বপূর্ণ কিন্তু এটা সাধারণত ডোমেইন নাম, সংক্ষিপ্ত স্মরণীয় (সহজে মনে থাকে) এবং হাইফেনবিহীন হলে সম্ভব হতে পারে।

আপনার ডোমেইন নাম এর মধ্যে কীওয়ার্ড ব্যবহার আপনার প্রতিযোগীদের থেকে আপনাকে একটি শক্তিশালী প্রতিযোগিতামূলক সুবিধা দেয়। আপনার ডোমেইন নাম এর মধ্যে কীওয়ার্ড থাকলে সার্চ ইঞ্জিন লিস্টে ক্লিক-মাধ্যম- হার বৃদ্ধি করতে পারে এবং শব্দ সমৃদ্ধ বর্ণনামূলক আগমনকারী লিঙ্ক পেতে কীওয়ার্ডের ব্যবহার যা বিজ্ঞাপন দেওয়াকে সহজ করে তুলে।

 

দীর্ঘ এবং বিভ্রান্তিকর ডোমেইন নাম কেনা থেকে এড়িয়ে চলুন। অনেক মানুষ ড্যাশ বা হাইফেন ব্যবহার করে তাদের ডোমেইন নামের মধ্যে শব্দ আলাদা করে থাকে। আগে ডোমেইন নাম নিজেই একটি গুরুত্বপূর্ণ র‍্যাংকিং ফ্যাক্টর ছিল কিন্তু এখন সার্চ ইঞ্জিনের উন্নত বৈশিষ্ট্য আছে এবং এটি আর এখন খুব গুরুত্বপূর্ণ ফ্যাক্টর নেই। আপনার ডোমেন নাম এর মধ্যে দুই থেকে তিন শব্দ রাখুন মনে রাখা সহজ হবে। কিছু সর্বাদিক লক্ষণীয় (notable) ওয়েবসাইট তাদের নিজস্ব শব্দ তৈরি করে ব্র্যান্ডিং এর কাজ করে। যেমন কয়েকটি উদাহরণ ইবে, ইয়াহু!, এক্সপিডিয়া, স্ল্যাশডট, Fark , উইকিপিডিয়া, গুগল ইত্যাদি।

 

আপনাকে একবার টেলিফোনে এটা বলতে সক্ষম হওয়া উচিত এবং অন্যান্য ব্যক্তি এটির বানান কিভাবে জানতে পারে এবং আপনি কি বিক্রি করছেন তারা যেন সেটা অনুমান করতে পারে।

গুরু মন্ত্র

অবশেষে, আপনাকে নিম্নলিখিত প্রশ্নের উত্তর দিতে সক্ষম হতে হবেঃ

  1. কেন আপনি আপনার ওয়েবসাইট তৈরি করতে চান?
  2. কেন মানুষ আপনার সাইটে থেকে কিনবে এবং অন্যান্য সাইট থেকে কেন নয়?
  3. কি অন্যদের থেকে আপনার সাইটকে আলাদা করে তোলবে ?
  4. কে আপনার লক্ষ্য পাঠক এবং আপনি কি বিক্রি করতে মনস্থ করেছেন?
  5. আপনি কি মনে করেন যে তালিকা 5 থেকে 10 ওয়েবসাইটগুলো আশ্চর্যজনক এখন চিন্তা করুন কেন তারা আশ্চর্যজনক?
  6. 5টি বিভিন্ন ডোমেইন নাম তৈরি করুন। তাদের মধ্যে অন্তত 1টা মজার করুন। অর্ধ ডজন মানুষকে বলুন এবং কোনটি সবচেয়ে বেশী স্মরণ থাকে। সেই মানুষগুলো যদি আপনাকে ভাল না জানে তাহলে আপনি আরো সৎ প্রতিক্রিয়া পাবেন।
  7. আপনার ডোমেন কিনুন যা catchy, স্মরণীয় এবং আপনার ব্যবসা প্রাসঙ্গিক ।

 

পিএইচপি ৫ while লুপ (PHP 5 while Loops)

প্রতাপ চন্দ্র

 

পিএইচপি while লুপ কোডের একটি ব্লক নির্বাহ করে যতক্ষণ পর্যন্ত একটি বেধে দেয়া শর্ত TRUE হতে থাকে।
যখন কোড লেখা হয় তখন এমন প্রয়োজন হতে পারে যে একই কাজ বার বার করার দরকার পড়ছে। তখন ওই কাজের জন্য বার বার কোড না লিখে লুপ ব্যবহার করে একই ফল পাওয়া যায়। এতে কোড পরিচ্ছন্ন থাকে এবং সহজে ও দ্রুত কাজ সম্পন্ন হয়।

পিএইচপিতে নিচের লুপ স্টেটমেন্টগুলো ব্যবহার করা হয়:

  • while – যতক্ষণ পর্যন্ত একটি নির্দিষ্ট শর্ত পূরণ হতে থাকে ততক্ষণ কোডের একটি ব্লক নির্বাহ করতে থাকে।
  • do…while – একবার লুপটি সম্পন্ন করে, অতপর যতক্ষণ পর্যন্ত একটি নির্দিষ্ট শর্ত পূরণ হতে থাকে ততক্ষণ পুরো লুপটি নির্বাহ করতে থাকে।
  • for – একটি নির্দিষ্ট সংখ্যক বার কোডের একটি ব্লক নির্বাহ হতে থাকে।
  • foreach – একটি অ্যারের সবগুলো উপাদানে না পৌছানো পর্যন্ত কোডের একটি ব্লক নির্বাহ করতে থাকে।

পিএইপি while লুপ

যতক্ষণ পর্যন্ত একটি নির্দিষ্ট শর্ত পূরণ হতে থাকে ততক্ষণ কোডের একটি ব্লক নির্বাহ করতে থাকে।

গঠনরীতি


while (condition is true) {
     code to be executed;
 }

নিচের উদাহরণে $x চলকের প্রাথমিক মান 1 ধরা হয় ($x = 1)। এরপর $x এর মান যতক্ষণ পর্যন্ত 5 এর কম থাকবে কিংবা সমান হবে ($x <= 5) ততক্ষণ প্রতি লুপে ($x++) চলক $x এর মান 1 করে বাড়তে থাকবে।


<?php 
 $x = 1;
while($x <= 5) {
     echo "The number is: $x <br>";
     $x++;
 } 
 ?>

 

কোডটি রান করালে ফলাফল আসবে:


The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5


 

পিএইচপি do…while লুপ

do…while লুপ কোডের একটি ব্লক একবার রান করবে। এরপর শর্ত যাচাই করবে। যতক্ষণ শর্ত TRUE হবে ততক্ষণ লুপ চলতে থাকবে।

গঠনরীতি:


do {
     code to be executed;
 } while (condition is true);

নিচের উদাহরণে $x চলকের প্রাথমিক মান 1 ধরা হয়েছে ($x = 1)। এরপর do…while লুপ প্রাথমিক আউটপুট দেবে। এরপর $x এর মান 1 বাড়াবে। এরপর শর্ত পরীক্ষা করে দেখবে $x এর মান 5 এর কম আছে কিংবা সমান হয়েছে কিনা। যতক্ষণ পর্যন্ত তা TRUE হবে ততক্ষণ লুপে দেয়া কোড নির্বাহ হবে এবং আউটপুট আসতে থাকবে।
যেমন:


<?php 
 $x = 1;
do {
     echo "The number is: $x <br>";
     $x++;
 } while ($x <= 5);
 ?>

 

কোডটি রান করলে আগের মতোই ফলাফল আসবে:


The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5


 

এখানে লক্ষ্য করুন, do…while লুপে শর্ত যাচাই করা হয় লুপের মধ্যকার স্টেটমেন্টটি নির্বাহ হবার পরে। এর অর্থ হলো do…while লুপ কোডটি নূন্যতম একবার নির্বাহ হবে, এমনকি শর্ত যদি FALSE হয় তবুও।

নিচের উদাহরণে $x চলকের প্রাথমিক মান 6 ধরা হয়েছে। এরপর কোডটি রান করে। তারপর শর্ত পরীক্ষা করে দেখে লুপ করবে কিনা। যেহেতু শর্ত FALSE হয় তাই আর লুপ হয় না।


<?php 
 $x = 6;
do {
     echo "The number is: $x <br>";
     $x++;
 } while ($x<=5);
 ?>

 

উপরের উদাহরেণের ক্ষেত্রে ফলাফল আসবে:


The number is: 6


 

গুগল ম্যাপের প্রকার (Google Maps Types)

গুগল ম্যাপের প্রকার
Sheikh Mahfuzur Rahman

একটি হাইব্রিড(HYBRID) গুগল ম্যাপঃ

গুগল ম্যাপ – প্রাথমিক প্রকারের কিছু ম্যাপ

গুগল ম্যাপ এপিআই নিচের ম্যাপের প্রকারগুলোকে সাপোর্ট করেঃ
ROADMAP (সাধারণ, টু’ডি ম্যাপ)
SATELLITE (ফটোগ্রাফিক ম্যাপ – ম্যাপটি তোলা ছবি থেকে তৈরি করা হয়েছে)
HYBRID (ফটোগ্রাফিক + রাস্তা ও শহরের নাম)
TERRAIN (পর্বত, নদী ইত্যাদি সহ ম্যাপ)।
ম্যাপের প্রকার হয় mapTypeId প্রপার্টি’র মাধ্যমে ম্যাপ প্রপার্টি অবজেক্টের ভিতরে নির্দিষ্ট করা হয়ঃ

var mapProp = {
center:new google.maps.LatLng(51.508742,-0.120850),
zoom:7,
mapTypeId: google.maps.MapTypeId.HYBRID
};

অথবা ম্যাপের setMapTypeId() মেথডকে কল করে করা হয়ঃ

map.setMapTypeId(google.maps.MapTypeId.HYBRID);

গুগল ম্যাপ – ৪৫ ডিগ্রি পার্সপেক্টিভ ভিউ

SATELLITE এবং HYBRID ম্যাপ হাই জুম লেভেলে কিছু কিছু অঞ্চলের জন্য একটি ৪৫ডিগ্রি ইমেজারি(যেখানে ঐ এলাকার রাস্তা, বাড়িঘরের ছবি থাকে) ভিউকে সাপোর্ট করে। আপনি যদি ৪৫ডিগ্রি ইমেজারি ভিউতে একটি এলাকাকে জুম করেন, ম্যাপ সয়ংক্রিয়ভাবে পার্স্পেকটিভ ভিউকে উল্টে দেবে। সেই সাথে, ম্যাপটি নিচের জিনিসগুলোকে যোগ করবেঃ
প্যান কন্ট্রোলের কাছে একটি কম্পাস, আপনার ছবি রোটেট বা ঘুরাতে সাহাজ্য করবে।
প্যান ও জুম কন্ট্রোলের মাঝখানে একটি রোটেট কন্ট্রোল, ইমেজকে ৯০ডিগ্রি পর্যন্ত ঘুরাতে দেয়।
স্যাটেলাইট কন্ট্রোল/লেবেলের নিচে ৪৫ডিগ্রি পার্সপেক্টিভ ভিউকে দেখানোর জন্য একটি টগল কন্ট্রোল

লক্ষ্যণীয়ঃ ৪৫ডিগ্রি ইমেজারি’র ম্যাপ থেকে জুম আউট করলে উপরের পরিবর্তনগুলো আর থাকবেনা এবং আসল ম্যাপটি দেখানো হবে।

নিচের উদাহরণটি ইটালির ভেনিসের পালাজ্জো ডুকালের একটি ৪৫ডিগ্রি পার্স্পেক্টিভ ভিউ দেখায়ঃ

var mapProp = {
center:myCenter,
zoom:18,
mapTypeId:google.maps.MapTypeId.HYBRID
};

টিপসঃ গুগল নতুন নতুন এলাকার জন্য ৪৫ডিগ্রি ইমেজারি ভিউ যোগ করছে। এখানে গুগল ম্যাপের ৪৫ডিগ্রি ইমেজারি’র তালিকাটি দেখে নিন।

গুগল ম্যাপ – ৪৫ডিগ্রি পার্সপেক্টিভ ভিউকে বাদ দেয়া

ম্যাপ অবজেক্টে etTilt(0) কে কল করে আপনি ৪৫ডিগ্রি ইমেজারি ভিউকে বাদ দিয়ে দিতে পারেনঃ

map.setTilt(0);

টিপসঃ পরবর্তীতে ৪৫ডিগ্রি পার্স্পেক্টিভ ভিউকে কার্যকর করতে setTilt(45) কে কল করুন।

 

 

গুগল ম্যাপ কন্ট্রোল (Google Maps Controls)

ডিফল্ট কন্ট্রোল সেটসহ একটি গুগল ম্যাপঃ

গুগল ম্যাপ – ডিফল্ট কট্রোল

যখন একটি স্ট্র্যান্ডার্ড গুগল ম্যাপ দেখানো হয় তখন তাতে যে কন্ট্রোলসেটটি ডিফল্ট হিসেবে থাকে তা নিম্নরূপঃ

জুম – একটি স্লাইডার অথবা “+/-” বাটনগুলো দেখায় যা ম্যাপের জুম লেভেল নিয়ন্ত্রন করতে ব্যবহৃত হয়
প্যান – ম্যাপকে প্যানিং অর্থাৎ ভার্টিকেল/হরাইজন্টালি নাড়াচাড়া করার জন্য একটি প্যান কন্ট্রোল দেখায়
ম্যাপটাইপ – ইউজারদের ম্যাপটাইপ (স্যটেলাইট/রোডম্যাপ) পরিবর্তন করতে দেয়
স্ট্রিট ভিউ – একটি পেজম্যান আইকন দেখায় যা ম্যাপের উপর টেনে নিয়ে স্ট্রিট ভিউ সচল করা যায়

গুগল ম্যাপ – আরও কিছু কন্ট্রোল

ডিফল্ট কন্ট্রোলের সাথে, গুগল ম্যাপে আরও কিছু কন্ট্রোল রয়েছেঃ
স্কেল – ম্যাপের স্কেল এলিমেন্ট দেখায়
রোটেট – একটি ছোট বৃত্তাকার আইকন দেখায় যা ম্যাপটিকে ঘুরাতে সাহাজ্য করে
অভারভিউ ম্যাপ – একটি থাম্বনেল অভারভিউ দেখায় যা বৃহত্তর এলাকায় বর্তমান ম্যাপের ভিউপোর্ট প্রতিফলিত করে।

আপনি যখন ম্যাপঅপশনে ম্যাপ তৈরি করবেন অথবা যখন setOptions() কে কল করার মাধ্যমে ম্যাপের অপশন পরিবর্তন করবেন তখন কোন কন্ট্রোলগুলো দেখাবেন তা নির্দিষ্ট করে দিতে পারবেন।

গুগল ম্যাপ – ডিফল্ট কন্ট্রোলগুলো ডিজেবল করা

আপনি হয়তো ডিফল্ট কন্ট্রোলগুলো বন্ধ করে দিতে চাইবেন। এটা করতে, ম্যাপ অপশন অবজক্টের ভেতরে disableDefaultUI প্রপার্টিকে ট্রু (true) করে দিনঃ

disableDefaultUI:true

গুগল ম্যাপ – সবগুলো কন্ট্রোলকে চালু করা

কিছু কন্ট্রোল ম্যাপে ডিফল্ট হিসেবে দেখায় এবং কিছু কন্ট্রোল আপনি যতক্ষণ না চালু করছেন ততক্ষণ দেখা যাবেনা। ম্যাপে কোন কন্ট্রোল যোগ করা হবে বা কোনটা লুকানো হবে তা ম্যাপ অপশন অবজেক্টে ঠিক করে দিতে হয়। কন্ট্রোলকে দৃশ্যমান করতে ট্রু সেট করতে হবে এবং লুকাতে হাইড (hide) সেট করতে হবে।
নিচের উদাহরণটি সবগুলো কন্ট্রোলকে অন করে বা দেখায়ঃ
panControl:true,
zoomControl:true,
mapTypeControl:true,
scaleControl:true,
streetViewControl:true,
overviewMapControl:true,
rotateControl:true

গুগল ম্যাপ – কন্ট্রোলগুলো মডিফাই করা

কিছু কিছু ম্যাপ কন্ট্রোল কনফিগার করা যায়। কন্ট্রোল অপশন ফিল্ডকে নির্দিষ্ট করে দেয়ার মাধ্যমে কন্ট্রোলগুলো কনফিগার করা যায়।
উদাহরণস্বরূপ, একটি জুম কন্ট্রোলকে মডিফাই বা পরিবর্তন করার অপশনগুলো zoomControlOptions ফিল্ডকে ঠিক করে দেয়া হয়। zoomControlOptions ফিল্ড নিচের অপশনগুলো ধারণ করতে পারেঃ

google.maps.ZoomControlStyle.SMALL – একটি ছোট জুম কন্ট্রোল দেখায় (শুধু + এবং – বাটন থাকে)
google.maps.ZoomControlStyle.LARGE – স্ট্যান্ডার্ড জুম স্লাইডারকে দেখায়
google.maps.ZoomControlStyle.DEFAULT – ডিভাইস ও ম্যাপের আকার অনুযায়ী সবথেকে ভালো জুম কন্ট্রোল দেখায়

উদাহরণঃ
zoomControl:true,
zoomControlOptions: {
style:google.maps.ZoomControlStyle.SMALL
}

নোটঃ আপনি যদি কোন কন্ট্রোলকে মডিফাই করতে চান তাহলে প্রথমে কন্ট্রোলটিকে সচল (ট্রু হিসেবে সেট করুন) করে নিন।

আরেকটি কনফিগার করার মতো কন্ট্রোল হলো MapType কন্ট্রোল
mapTypeControlOptions ফিল্ডে এই কন্ট্রোলের অপশনগুলো কিভাবে মডাফাই করা হবে তা ঠিক করে দিতে হয়। mapTypeControlOptions ফিল্ড নিচের অপশনগুলো ধারণ করতে পারেঃ

google.maps.MapTypeControlStyle.HORIZONTAL_BAR – প্রতি ম্যাপ টাইপের জন্য একটি বাটন দেখায়
google.maps.MapTypeControlStyle.DROPDOWN_MENU – একটি ড্রপডাউন মেন্যু থেকে ম্যাপ টাইপ সিলেক্ট করার ব্যবস্থা করে
google.maps.MapTypeControlStyle.DEFAULT – স্ক্রিনের আকার অনুযায়ী ডিফল্ট ম্যাপ টাইপ দেখায়

উদাহরণঃ
mapTypeControl:true,
mapTypeControlOptions: {
style:google.maps.MapTypeControlStyle.DROPDOWN_MENU
}

আপনি ControlPosition প্রপার্টির মাধ্যমে একটি কন্ট্রোলের অবস্থানও ঠিক করে দিতে পারবেনঃ

mapTypeControl:true,
mapTypeControlOptions: {
style:google.maps.MapTypeControlStyle.DROPDOWN_MENU,
position:google.maps.ControlPosition.TOP_CENTER
}

গুগল ম্যাপ – কাস্টম কন্ট্রোল

এমন একটি কাস্টম কন্ট্রোল তৈরি করা যাক যা আপনাকে ক্লিক করার পর সব সময় লন্ডনে নিয়ে ( যদি ম্যাপকে ড্র্যাগ করা হয়) যাবেঃ

controlDiv.style.padding = ‘5px’;
var controlUI = document.createElement(‘div’);
controlUI.style.backgroundColor = ‘yellow’;
controlUI.style.border=’1px solid’;
controlUI.style.cursor = ‘pointer’;
controlUI.style.textAlign = ‘center’;
controlUI.title = ‘Set map to London’;
controlDiv.appendChild(controlUI);
var controlText = document.createElement(‘div’);
controlText.style.fontFamily=’Arial,sans-serif’;
controlText.style.fontSize=’12px’;
controlText.style.paddingLeft = ‘4px’;
controlText.style.paddingRight = ‘4px’;
controlText.innerHTML = ‘Home‘
controlUI.appendChild(controlText);

 

 

গুগল ম্যাপ এর ঘটনাবলি (Google Maps Events)

Google Maps Events(গুগল ম্যাপ এর ঘটনাবলি)

Click The Marker to Zoom(জুম করার জন্য মার্কার Click করুন)
আমরা এখনও পূর্বের page এর map ব্যাবহার করচিঃ এখানে যে map টি ব্যাবহার করা হয়েছে তা লন্ডন, ইংল্যান্ড কেন্দ্রিক ।

যখন একজন ব্যাবহারকারী মার্কার এ ক্লিক করেন তখন আমরা map টিকে বড় করে উপস্থাপন করি (আমরা marker হিসেবে একটি
event handler যুক্ত করেছি যা map টি কে বড় করে দেখায় Click করার পর)।

কোড টি এরূপ ঃ

// Zoom to 9 when clicking on marker
google.maps.event.addListener(marker,’click’,function() {
map.setZoom(9);
map.setCenter(marker.getPosition());
});

আমরা addListener নামক event handler টি যুক্ত করেছি event গুলির notification খুব সহজে পাওয়ার জন্য ।
এই প্রক্রিয়াটি একটি object এর জন্য দরকার হয়, যেমনঃ শোনার জন্য একটি event কে call করা হয় যখন এটি ঘটে।

Pan Back to Marker
এই পর্যায়ে map টি তে একটি event handler ব্যাবহার করা হয় ‘center’ property পরিবর্তন করার জন্য এবং marker
কে pan back করলে map টি তে ৩ সেকেন্ড পরে একটি center_changed ঘটনা ঘটে, codeগুলি নিম্নরূপঃ

google.maps.event.addListener(map,’center_changed’,function() {
window.setTimeout(function() {
map.panTo(marker.getPosition());
},3000);
});

Open an InfoWindow When Clicking on The Marker(একটি InfoWindow Open হয় যখন Marker
এ Click করা হয় )
Marker এ Click করা হলে নিম্নরূপ কিছু text দেখা যায় infowindow তেঃ

var infowindow = new google.maps.InfoWindow({
content:”Hello World!”
});

google.maps.event.addListener(marker, ‘click’, function() {
infowindow.open(map,marker);
});

Set Markers and Open InfoWindow for Each Marker(Marker নির্দিষ্ট করন এবং প্রত্যেক Marker এর
জন্য InfoWindow খুলা )
একটি function Run হয় যখন ব্যাবহারকারী map এ click করেন।

placeMarker() function টি একটি marker এর স্থান নির্দিষ্ট করে যেখানে ব্যাবহারকারী click করে এবং একটি
infowindow এটিতে marker এর latitudes and longitudes দেখায়ঃ

উদাহরনঃ
google.maps.event.addListener(map, ‘click’, function(event) {
placeMarker(event.latLng);
});

function placeMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map,
});
var infowindow = new google.maps.InfoWindow({
content: ‘Latitude: ‘ + location.lat() +
‘
Longitude: ‘ + location.lng()
});
infowindow.open(map,marker);
}

গুগলম্যাপ্স ওভারলেস (Google Maps – Overlays)

Add a marker to the Google map(Google map এ marker যোগকরন)

Google Maps – Overlays( মোড়ক তৈরি করন)

Overlays হচ্ছে map এর উপরে একটি object যেটি latitude এবং longitude এর সীমিত করনে কাজ করে ।

Google Maps এর কয়েক ধরনের overlay দেখা যায় –

১) Marker- map এর একটি একক জাইগা নির্দেশ করে। Marker টি একটি প্রচলিত icon images দেখায়।
২) Polyline- map এর উপরে একসারি line নির্দেশ করে।
৩) Polygon- map এর উপরে একসারি line এবং এর আকৃতি “closed”।
৪) Circle(বৃত্তাকার) and Rectangle(আয়তক্ষেত্রিক)
৫) Info Windows- map এর উপরে content গুলিকে popup balloon এর মধ্যে প্রদর্শন করে।
৬) Custom(প্রচলিত) overlays

Google Maps – Add a Marker(Google Map এ Marker যুক্তকরন)

Marker constructor একটি marker নির্মাণ করে । লক্ষ্য রাখতে হবে যে marker এর জন্য position property ঠিক করতে
হবে যেন সেটি প্রদর্শিত হয়।

setMap( ) পদ্ধতি দ্বারা map এ marker যুক্তকরনঃ
উদাহরনঃ
var marker=new google.maps.Marker({
position:myCenter,
});
marker.setMap(map);

Google Maps – Animate the Marker(Google Map এ Marker কে জীবন্তকরণ )
নিচের উদাহরণ টি দ্বারা দেখানো হয়েছে কিভাবে Google Map এ Marker কে জীবন্তকরণ করা হয়।
var marker=new google.maps.Marker({
position:myCenter,
animation:google.maps.Animation.BOUNCE
});
marker.setMap(map);

Google Maps – Icon Instead of Marker(Google Map এ Marker এর পরিবর্তে Icon ব্যাবহার)

উদাহরনঃ
var marker=new google.maps.Marker({
position:myCenter,
icon:’pinkball.png’
});

marker.setMap(map);

Google Maps – Polyline( Google Map এ Polyline এর ব্যাবহার)
Polyline হচ্ছে একটি line যেটি এক সারি স্থানাঙ্ক যা ক্রমধারা তে থাকে।

polyline নিম্নোক্ত properties অনুসরন করে।

১) path- এটি line এর স্থানাঙ্ক দ্বারা latitude/longitude নির্দেশ করে
২) strokeColor- এটি line এর জন্য hexadecimal color নির্দেশ করে যেমনঃ (এর ধরন : “#FFFFFF”)
৩) strokeOpacity- এটি line এর অস্বচ্ছতা নির্দেশ করে । এর value 0.0 থেকে 1.0 এর মধ্যে হয়।
৪) strokeWeight- line এর weight কে pixel একক দ্বারা নির্দিষ্ট করে।
৫) editable- line টি ব্যাবহারকারী দ্বারা editable(পরিবর্তন যোগ্য) কিনা তা নির্ধারণ করে।

উদাহরনঃ
var myTrip = [stavanger,amsterdam,london];
var flightPath = new google.maps.Polyline({
path:myTrip,
strokeColor:”#0000FF”,
strokeOpacity:0.8,
strokeWeight:2
});

Google Maps – Polygon(Google Map এ Polygon এর ব্যাবহার)

Polyline এর মত Polygon ও এক সারি সুবিন্যস্ত স্থানাঙ্ক দ্বারা গঠিত হয়। তবে Polygon কে এমন ভাবে রূপ দেয়া হয় যেন তা
closed loop এলাকা কে নির্দেশ করে ।
Polygon গুলি সোজা line দ্বারা তৈরি হয় এবং এটি “closed”।
Polygon নিম্নোক্ত properties অনুসরণ করেঃ
path- এটি line এর latitude/longitude স্থানাঙ্ক নির্দিষ্ট করে।(প্রথম এবং শেষ স্থানাঙ্ক একই হয়)
strokeColor- এটি line এর জন্য hexadecimal color নির্দিষ্ট করে । (এর ধরন : “#FFFFFF”)
strokeOpacity- line এর অস্বচ্ছতা নির্দেশ করে । value 0.0 থেকে 1.0 এর মধ্যে হয়।
strokeWeight- line এর weight কে pixel একক দ্বারা নির্দিষ্ট করে।
fillColor- এটি একটি বদ্ধ এলাকার জন্য hexadecimal color নির্দিষ্ট করে । (এর ধরন : “#FFFFFF”)
fillOpacity-এটি দ্বারা পরিপূর্ণ color এর অস্বচ্ছতা নির্দেশ করে। এর value 0.0 থেকে 1.0 এর মধ্যে হয়।
editable- line টি ব্যাবহারকারী দ্বারা editable(পরিবর্তন যোগ্য) কিনা তা নির্দেশ করে ।

উদাহরনঃ
var myTrip = [stavanger,amsterdam,london,stavanger];
var flightPath = new google.maps.Polygon({
path:myTrip,
strokeColor:”#0000FF”,
strokeOpacity:0.8,
strokeWeight:2,
fillColor:”#0000FF”,
fillOpacity:0.4
});

Google Maps – Circle(Google Maps- বৃত্ত )

একটি Circle নিম্নোক্ত properties এ follow করে।
center- এটি google.map এর latitude/longitude কে circle এর কেন্দ্রে নির্দিষ্ট করে ।
radius- circle এর ব্যাসার্ধ কে meter একক এ প্রকাশ করে।
strokeColor – circle এর চারপাশের line টি hexadecimal color দ্বারা নির্দিষ্ট হয়। (এর ধরন : “#FFFFFF”)
strokeOpacity- stroke color এর অস্বচ্ছতা নির্দিষ্ট করে। এর value 0.0 থেকে 1.0 এর মধ্যে হয়।
strokeWeight-line এর weight কে pixel একক দ্বারা নির্দিষ্ট করে ।
fillColor- circle এর ভিতরের এলাকার জন্য একটি hexadecimal color নির্দিষ্ট করে । (এর ধরন : “#FFFFFF”)
fillOpacity- অভ্যন্তরীণ color এর অস্বচ্ছতা নির্দেশ করে। এর value 0.0 থেকে 1.0 এর মধ্যে হয়।
editable- এটি নির্দেশ করে যে circle টি ব্যাবহারকারী দ্বারা editable(পরিবর্তনযোগ্য) কিনা।

উদাহরণঃ
var myCity = new google.maps.Circle({
center:amsterdam,
radius:20000,
strokeColor:”#0000FF”,
strokeOpacity:0.8,
strokeWeight:2,
fillColor:”#0000FF”,
fillOpacity:0.4
});

Google Maps – InfoWindow(Google Map এ InfoWindow এর ব্যাবহার)
এটি marker এর কিছু text কে InfoWindow তে দেখায়।
উদাহরনঃ

var infowindow = new google.maps.InfoWindow({
content:”Hello World!”
});

infowindow.open(map,marker);

Thank you for reading……

জাভাস্ক্রিপ্ট স্ট্রিং মেথড (JavaScript String Methods)

জাভাস্ক্রিপ্ট স্ট্রিং মেথড (JavaScript String Methods)

নয়ন চন্দ্র দত্ত

 

স্ট্রিং পদ্ধতি আপনাকে স্ট্রিং নিয়ে কাজ করতে সাহায্য করবে।

 

কোন স্ট্রিং এর মধ্যে একটি স্ট্রিং খুঁজে বের করা

indexOf() পদ্ধতি একটি স্ট্রিং এর মধ্যে নির্দিষ্ট লেখার প্রথম ঘটনার ইন্ডেক্স প্রদান করে।

উদাহরণ


var str = “Please locate where ‘locate’ occurs!”;
var pos = str.indexOf(“locate”);


 

 

lastIndexOf() পদ্ধতি একটি স্ট্রিং এর মধ্যে নির্দিষ্ট লেখার শেষ ঘটনার ইন্ডেক্স প্রদান করে।

উদাহরণ


var str = “Please locate where ‘locate’ occurs!”;
var pos = str.lastIndexOf(“locate”);


 

যদি টেক্সট পাওয়া না তাহলে indexOf() এবং lastIndexOf() উভয় পদ্ধতি -1 প্রদান করে।
[ জাভাস্ক্রিপ্ট শূন্য থেকে অবস্থান গণনা করে। একটি স্ট্রিং মধ্যে 0 প্রথম, 1 দ্বিতীয়, 2 তৃতীয় স্থানে। ]
উভয় পদ্ধতিতে অনুসন্ধানের জন্য শুরুর অবস্থান হিসাবে দ্বিতীয় প্যারামিটার গ্রহণ করে।

 

একটি স্ট্রিং এর মধ্যে স্ট্রিং অনুসন্ধান

search() পদ্ধতি একটি নির্দিষ্ট মানের জন্য একটি স্ট্রিং অনুসন্ধান করে এবং ম্যাচ হওয়া অবস্থান প্রদান করে।

উদাহরণ


var str = “Please locate where ‘locate’ occurs!”;
var pos = str.search(“locate”);


 

**আপনি কি লক্ষ্য করেছেন?
indexOf() এবং search() দুটি পদ্ধতিই সমান।
তারা একই আর্গুমেন্ট (প্যারামিটার) গ্রহণ করে এবং তারা একই মান প্রদান করে।
দুটি পদ্ধতিই সমান কিন্তু search() পদ্ধতি আরো অনেক শক্তিশালী সার্চ মান গ্রহণ করতে পারে।
আপনারা রেগুলার এক্সপ্রেশন সম্পর্কিত অধ্যায়ে শক্তিশালী সার্চ মান সম্পর্কে আরো জানতে পারবেন।

 

স্ট্রিং যন্ত্রাংশ এক্সট্রাক্টিং

একটি স্ট্রিং এর একটি অংশ এক্সট্রাক্টিংয়ের জন্য 3টি পদ্ধতি আছে:

  • slice(start, end)
  • substring(start, end)
  • substr(start, length)

 

slice() পদ্ধতি

একটি স্ট্রিং এর একটি অংশ এক্সট্রাক্ট করে এবং একটি নতুন স্ট্রিং এক্সট্রাক্টিং অংশ প্রদান করে।
পদ্ধতিতে 2টি প্যারামিটার লাগে। যথাঃ শুরুর ইনডেক্স (অবস্থান), এবং শেষ ইনডেক্স (অবস্থান)।
এই উদাহরণ একটি স্ট্রিংকে 7 থেকে 13 অবস্তানে slices out করেঃ

উদাহরণ


var str = “Apple, Banana, Kiwi”;
var res = str.slice(7,13);


 

মধ্যের ফলাফল হবেঃ
Banana

যদি কোন প্যারামিটার নেগেটিভ হয় তাহলে এর অবস্থান স্ট্রিং এর শেষ থেকে গণনা করা হবে।
এই উদাহরণ একটি স্ট্রিংকে -12 থেকে -6 অবস্তানে slices out করেঃ

উদাহরণ


var str = “Apple, Banana, Kiwi”;
var res = str.slice(-12,-6);


 

মধ্যের ফলাফল হবেঃ
Banana

যদি আপনি দ্বিতীয় প্যারামিটারটি বর্জন করেন তবে পদ্ধতিটিতে বাকি স্ট্রিং সেভাবেই হবে। যেমনঃ-
var res = str.slice(7);

বা, শেষ থেকে গনণা করলে, যেমনঃ-
var res = str.slice(-12);

[ নেতিবাচক অবস্থানের ইন্টারনেট এক্সপ্লোরার ৮ এবং তার আগের ভারসনে কাজ করবে না। ]

 

substring() পদ্ধতি

substring(), slice() এর মত। ভিন্নতা এই যে substring() কখনও নেগেটিভ ইনডেক্স করতে পারে না।

উদাহরণ


var str = “Apple, Banana, Kiwi”;
var res = str.substring(7,13);


 

মধ্যের ফলাফল হবেঃ
Banana

যদি আপনি দ্বিতীয় প্যারামিটারটি বর্জন করেন তবে substring() বাকি স্ট্রিংকে সেভাবেই slice out করবে।

 

substr() পদ্ধতি

substr() , slice() এর মত। ভিন্নতা এই যে substr() এক্সট্রাক্ট অংশের দৈর্ঘ্য নির্দিষ্ট করে।

উদাহরণ


var str = “Apple, Banana, Kiwi”;
var res = str.substr(7,6);


 

মধ্যের ফলাফল হবেঃ
Banana

যদি প্রথম প্যারামিটার নেগেটিভ হয়, তাহলে অবস্থান স্ট্রিং এর শেষ থেকে গণনা করা হবে।
দ্বিতীয় প্যারামিটার নেগেটিভ হতে পারে না কারণ এটি দৈর্ঘ্য সংজ্ঞায়িত করে।
যদি দ্বিতীয় প্যারামিটারটি বর্জন করেন তবে substr() বাকি স্ট্রিংকে সেভাবেই slice out করবে।

 

স্ট্রিং বিষয়বস্তু প্রতিস্থাপন

replace() পদ্ধতি একটি স্ট্রিং এর মধ্যে অন্য মানের সঙ্গে একটি নির্দিষ্ট মানকে প্রতিস্থাপন করে।

উদাহরণ


str = “Please visit Microsoft!”;
var n = str.replace(“Microsoft”,”W3Schools”);


 

replace() মেথড সার্চ মান হিসাবে একটি রেগুলার এক্সপ্রেশনও গ্রহণ করতে পারে।

 

উচ্চ এবং নিম্ন কেসে রূপান্তর

একটি স্ট্রিং toUpperCase() এর সঙ্গে উচ্চ কেসে রূপান্তর হয়।

উদাহরণ


var text1 = "Hello World!";         // String
 var text2 = text1.toUpperCase();   // text2 is text1 converted to upper

 

একটি স্ট্রিং toUpperCase() এর সঙ্গে নিম্ন কেসে রূপান্তর হয়।

উদাহরণ


var text1 = "Hello World!";         // String
 var text2 = text1.toLowerCase();   // text2 is text1 converted to lower

 

 

concat() পদ্ধতি

concat() দুটি অথবা আরো স্ট্রিং যোগ করে।

উদাহরণ


var text1 = “Hello”;
var text2 = “World”;
text3 = text1.concat(” “,text2);


 

Concat () মেথড প্লাস অপারেটরের পরিবর্তে ব্যবহার করা যেতে পারে। এই দুই লাইন একই কাজ করেঃ


var text = “Hello” + ” ” + “World!”;
var text = “Hello”.concat(” “,”World!”);


 

 

স্ট্রিং অক্ষর নিষ্কাশন

স্ট্রিং অক্ষর আহরণের জন্য 2টি নিরাপদ পদ্ধতি নিম্নরূপঃ

  1. charAt(position)
  2. charCodeAt(position)

 

charAt() পদ্ধতি

CharAt () মেথড একটি স্ট্রিং মধ্যে একটি নির্দিষ্ট ইনডেক্সে (অবস্থান) ইনডেক্স চরিত্র প্রদান করে।

উদাহরণ


var str = "HELLO WORLD";
 str.charAt(0);          // returns H

 

 

charCodeAt() পদ্ধতি

CharCodeAt () মেথড একটি স্ট্রিং মধ্যে একটি নির্দিষ্ট ইনডেক্সে ইউনিকোড চরিত্র প্রদান করে।

উদাহরণ


var str = "HELLO WORLD";
str.charCodeAt(0);        // returns 72

 

 

অনিরাপদ অ্যারে হিসাবে স্ট্রিং ব্যবহার

অ্যারে হিসাবে একটি স্ট্রিং অ্যাক্সেস করতে এইরকম কোড দেখতে পাবেনঃ


var str = "HELLO WORLD";
str[0];           // returns H

 

 

একটি স্ট্রিংকে অ্যারেতে রূপান্তর

একটি স্ট্রিং split() মেথডের সাহায্যে অ্যারেতে রূপান্তরিত হতে পারে।

উদাহরণ


var txt = "a,b,c,d,e";   // String
 txt.split(",");         // Split on commas
 txt.split(" ");         // Split on spaces
 txt.split("|");         // Split on pipe

 

যদি বিভাজককে বাদ দেওয়া হয়, তাহলে ফিরতি অ্যারেতে ইনডেক্স [0] এর মধ্যে পুরো স্ট্রিং থাকবে। যদি বিভাজক “” হয়, তবে ফিরতি অ্যারৎ একক অক্ষরের একটি অ্যারে হবে। যেমনঃ

উদাহরণ


var txt = "Hello"; // String
 txt.split("");    // Split in characters

 

নিজে নিজে অনুশীলন কর!

অনুশীলন 01:

ইঙ্গিত: টেক্সট ভেরিয়েবল এর মধ্যে “World” এর প্রথম অবস্থান প্রদর্শন করে।


<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var txt = "Hello World";
document.getElementById("demo").innerHTML = txt;
</script>
</body>
</html>

 

 

 

অনুশীলন 02:

ইঙ্গিত: “World” কে “Universe” দ্বারা পরিবর্তন করার জন্য replace() মেথড ব্যবহার করুন।


<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var txt = "Hello World";
document.getElementById("demo").innerHTML = txt;
</script>
</body>
</html>

 

 

অনুশীলন 03:

ইঙ্গিত: শুধুমাত্র “Banana,Kiwi” প্রদর্শনের জন্য slice() মেথড ব্যবহার করুন।


 

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
var str = "Apple,Banana,Kiwi";
document.getElementById("demo").innerHTML = str;
</script>
</body>
</html>

 

 

জাভাস্ক্রিপ্ট নাম্বার (JavaScript Numbers)

জাভাস্ক্রিপ্ট নাম্বার (JavaScript Numbers)

নয়ন চন্দ্র দত্ত

 

জাভাস্ক্রিপ্ট এর শুধুমাত্র এক ধরনের নাম্বার আছে। নাম্বার দশমিক দিয়ে বা না দিয়েও লেখা যায়।

জাভাস্ক্রিপ্ট নাম্বার

নাম্বার দশমিক দিয়ে বা না দিয়েও লেখা যায়ঃ

উদাহরণ


var x = 34.00;         // A number with decimals
var y = 34;             // A number without decimals


 

 

অতিরিক্ত বড় বা অতিরিক্ত ছোট সংখ্যা বৈজ্ঞানিক (সূচক) স্বরলিপি দিয়ে লেখা যেতে পারে।

উদাহরণ


var x = 123e5;    // 12300000
 var y = 123e-5;  // 0.00123

 

 

জাভাস্ক্রিপ্ট নাম্বার সর্বদা 64 বিট ফ্লোটিং পয়েন্ট হয়

অন্যান্য অনেক প্রোগ্রামিং ভাষা থেকে ভিন্ন, জাভাস্ক্রিপ্ট বিভিন্ন ধরনের নাম্বার সংজ্ঞায়িত করেনা; যেমন- ইন্টিজার, ছোট, লম্বা, ফ্লোটিং-পয়েন্ট ইত্যাদি।
জাভাস্ক্রিপ্ট নাম্বার সবসময় আন্তর্জাতিক আইইইই 754 মান অনুসরণ করে, ডবল স্পষ্টতার ফ্লোটিং পয়েন্ট নাম্বার হিসেবে সংরক্ষণ করা হয়।
এই ফরম্যাট 64 বিট নাম্বার বিন্যাস করে যেখানে নাম্বার (ভগ্নাংশ) 0 থেকে 51 বি্টের মধ্যে সংরক্ষিত হয়। বিটের সূচক 52 থেকে 62 এবং বিটের সাইন ইন 63 হয়।

 

মান (ওরফে ভগ্নাংশ / অংশক) 52 bits (0 – 51)
সূচক 11 bits (52 – 62)
সাইন 1 bit (63)

 

যথার্থতা

ইন্টিজার (নির্দিষ্ট সময়ের বা সূচক স্বরলিপি ছাড়া নাম্বার) 15 সংখ্যার পর্যন্ত সঠিক বলে মনে করা হয়।

উদাহরণ


var x = 999999999999999;      // x will be 999999999999999
 var y = 9999999999999999;    // y will be 10000000000000000

 

 

দশমিক সর্বোচ্চ সংখ্যা 17 কিন্তু পাটীগণিতীয় ফ্লোটিং পয়েন্ট সবসময় 100% সঠিক হয়না।

উদাহরণ


var x = 0.2 + 0.1;            // x will be 0.30000000000000004

 

 

উপরে সমস্যা সমাধান করার জন্য, এটি সংখ্যাবৃদ্ধি এবং ডিভাইড করতে সাহায্য করেঃ

উদাহরণ


var x = (0.2 * 10 + 0.1 * 10) / 10;           // x will be 0.3

 

 

হেক্সাডেসিমেল

যদি তারা 0x দ্বারা পূর্বে হয় তাহলে জাভাস্ক্রিপ্ট হেক্সাডেসিমাল হিসাবে সাংখ্যিক ধ্রুবক ব্যাখ্যা করে।

উদাহরণ


var x = 0xFF;        // x will be 255

 

[ লিডিং শূন্য (যেমন 07) দিয়ে সংখ্যা লিখবেন না। ]

ডিফল্টরূপে, জাভাস্ক্রিপ্ট বেস 10 দশমিক সংখ্যা হিসাবে প্রদর্শন করে। কিন্তু বেস 16 (হেক্স), বেস 8 (অকট্যাল), বা বেস 2 (বাইনারি) হিসাবে আউটপুট toString() ব্যবহার করতে পারেন।

উদাহরণ


var myNumber = 128;
 myNumber.toString(16);     // returns 80
 myNumber.toString(8);      // returns 200
 myNumber.toString(2);      // returns 10000000

 

 

অসীম

উদাহরণ


var myNumber = 2;
 while (myNumber != Infinity) {          // Execute until Infinity
 myNumber = myNumber * myNumber;
 }

 

 

0 (শূন্য) দ্বারা ভাগ করেও অসীম তৈরি করা যায়।

উদাহরণ


var x = 2 / 0;         // x will be Infinity
 var y = -2 / 0;       // y will be -Infinity

 

 

অসীম একটি সংখ্যা। অসীম typeOf নাম্বার প্রদান করে।

উদাহরণ


typeof Infinity;       // returns "number"

 

 

NaN – কোন সংখ্যা নয়

NaN একটি জাভাস্ক্রিপ্ট সংরক্ষিত শব্দ একটি মান যা নির্দেশ করে যা কোন সংখ্যা নয়। একটি অ-সাংখ্যিক স্ট্রিং সঙ্গে গাণিতিক কাজ করার চেষ্টা করেলে রেজাল্ট NaN(কোন সংখ্যা নয়) হবে।

উদাহরণ


var x = 100 / "Apple";        // x will be NaN (Not a Number)

 

 

যাইহোক, স্ট্রিং এর একটি সাংখ্যিক মান রয়েছে। রেজান্ট একটি সংখ্যা হবেঃ

উদাহরণ


var x = 100 / "10";       // x will be 10

 

 

মান একটি সংখ্যা হয় তাহলে আপনি গ্লোবাল জাভাস্ক্রিপ্ট ফাংশন isNaN() ব্যবহার করে তা খুঁজে বের করতে পারেন।

উদাহরণ


var x = 100 / "Apple";
 isNaN(x);                // returns true because x is Not a Number

 

 

NaN দেখুন। আপনি যদি গাণিতিক অপারেশন এর মধ্যে NaN ব্যবহার করেন তাহলে রেজাল্ট নিম্নরূপ হবেঃ

উদাহরণ


 var x = NaN;
 var y = 5;
 var z = x + y;     // z will be NaN

 

 

NaN একটি নাম্বার। typeOf NaN নাম্বার প্রদান করে।

উদাহরণ


typeof NaN;         // returns "number"

 

 

নাম্বার অবজেক্টও হতে পারে

সাধারণত জাভাস্ক্রিপ্ট সংখ্যা লিটারেল থেকে তৈরি আদিম মানঃ var x = 123
কিন্তু নাম্বারকে নতুন শব্দ দ্বারা অবজেক্ট হিসাবেও সংজ্ঞায়িত করো যেতে পারেঃ var y = new Number(123)

উদাহরণ


var x = 123;
 var y = new Number(123);
          // typeof x returns number
          // typeof y returns object

 

 

কখনও নাম্বার অবজেক্ট তৈরি করবেন না। তারা সঞ্চালনের গতি মন্থর এবং কদর্য পার্শ্ব প্রতিক্রিয়া সৃষ্টি করে।
যখন সমতা == অপারেটর ব্যবহার করেন তখন সমান সংখ্যা সমান দেখায়:

উদাহরণ


var x = 500;
 var y = new Number(500);
// (x == y) is true because x and y have equal values

 

 

যখন সমতা === অপারেটর ব্যবহার করেন তখন সমান সংখ্যা সমান হয়না কারণ === অপারেটর টাইপ এবং মান উভয় সমতা বিবেচনা করে।

উদাহরণ


var x = 500;
 var y = new Number(500);
// (x === y) is false because x and y have different types

 

 

অথবা এমনকি খারাপ. অবজেক্টস তুলনা করা যাবে নাঃ

উদাহরণ


var x = new Number(500);
 var y = new Number(500);
// (x == y) is false because objects cannot be compared

 

জাভাস্ক্রিপ্ট অবজেক্টস তুলনা করা যায় না।

 

নাম্বার প্রোপার্টি এবং মেথড

আদিম মানের (3.14 বা 2014 এর মত) বৈশিষ্ট্য ও পদ্ধতি থাকতে পারে না(কারণ তারা অবজেক্ট না) ।

নাম্বার প্রোপার্টি

প্রোপার্টি ব্যাখ্যা
MAX_VALUE জাভাস্ক্রিপ্ট এ সম্ভব এমন বৃহত্তম সংখ্যা প্রদান করে।
MIN_VALUE জাভাস্ক্রিপ্ট এ সম্ভব এমন ক্ষুদ্রতম সংখ্যা প্রদান করে।
NEGATIVE_INFINITY অসীমে নেগেটিভ প্রতিনিধিত্ব করে।
NaN একটি “সংখ্যা নয়” মান প্রতিনিধিত্ব করে।
POSITIVE_INFINITY অসীম প্রতিনিধিত্ব করে।

 

উদাহরণ


var x = Number.MAX_VALUE;


 

এই প্রোপার্টিস শুধুমাত্র Number.MAX_VALUE হিসেবও ওয়াক্সেস করা যেতে পারে।

myNumber.MAX_VALUE, ব্যবহার করে, যেখানে MyNumber একটি পরিবর্তনশীল, অভিব্যক্তি, অথবা মান তা অনির্ধারিত হিসেবে ফিরে আসে।

উদাহরণ


var x = 6;
var y = x.MAX_VALUE; // y becomes undefined


 

পিএইচপি ৫ ফর লুপ (PHP 5 for Loops)

প্রতাপ চন্দ্র

 

প্রোগ্রামিং ল্যাঙ্গুয়েজে লুপিং একটি গুরুত্বপূর্ণ টার্ম। একটি নির্দিষ্ট শর্ত পূরণ না হওয়া পর্যন্ত কম্পিউটারকে একই কাজ পুণ:পুণ: করানোর জন্য for loop স্টেটমেন্ট ব্যবহার করা হয়। PHP (পিএইপি) ল্যাঙ্গুয়েজেও for loop স্টেটমেন্ট ব্যবহার করা হয় এক ব্লক কোড একটি নির্দিষ্ট সংখ্যকবার আবর্তিত হয়ে নির্বাহ করার জন্য।

PHP তে for loop স্টেটমেন্টটি তখন ব্যবহার করা হয় যখন আগেভাগে জানা থাকে কোডটি কতবার বা কতদূর পর্যন্ত রান করাতে হবে।

Syntax বা গঠনরীতি:


for (init counter; test counter; increment counter) {
     code to be executed;
 }

 

এই syntax এ যে প্যারামিটারগুলো ব্যবহার করা হয়েছে তা নিচে ব্যাখ্যা করা হলো:

  • init counter: লুপ কাউন্টার কোন সংখ্যা থেকে শুরু করবে সেই প্রাথমিক মান।
  • test counter: শর্তটির অবস্থা মূল্যায়ন করে দেখে। মান যদি শর্তটির মধ্যে থাকে অর্থাৎ TRUE হয় তবে আবার loop চালু করে। যদি শর্তের বাইরে চলে যায় অর্থাৎ FALSE হয় তখন লুপিং শেষ করে দেয়।
  • increment counter: লুপ কাউন্টারের মান বৃদ্ধি করে।

নিচে একটি উদাহরণ দেয়া হলো:


<?php 
 for ($x = 0; $x <= 10; $x++) {
     echo "The number is: $x <br>";
 } 
 ?>

 

এই কোডটি রান করালে ফলাফল আসবে নিচের মতো:


The number is: 0
The number is: 1
The number is: 2
The number is: 3
The number is: 4
The number is: 5
The number is: 6
The number is: 7
The number is: 8
The number is: 9
The number is: 10


 

পিএইপি foreach Loop:

foreach লুপ কেবলমাত্র array তে কাজ করে। লুপটি একটি অ্যারেতে রাখা প্রতিটি উপাদানে পর্যায়ক্রমে প্রবেশের জন্য ব্যবহার করা হয়। এর গঠনরীতি নিচে দেয়া হলো:


foreach ($array as$value) {
     code to be executed;
 }

প্রতিটি লুপ যখন কার্যকর হয় তখন অ্যারের তাতক্ষনিক উপাদানটি $value হিসেবে পরিগণিত হবে এবং অ্যারের পরের উপাদানে যায়। যতক্ষণ পর্যন্ত না এটি ওই অ্যারের সর্বশেষ উপাদানে পৌছাবে ততক্ষণ একই প্রক্রিয়া চলতে থাকবে।

নিচের উদাহরণটি একটি লুপ প্রদর্শন করবে যা $colors অ্যারের value গুলো আউটপুট হিসেবে এক এক করে প্রদর্শন করবে।


<?php 
 $colors = array("red", "green", "blue", "yellow");
foreach ($colors as $value) {
     echo "$value <br>";
 }
 ?>

 

এই কোডটি রান করালে ফলাফল আসবে নিচের মতো:


red
green
blue
yellow