"হাই, অ্যামিগো!"

"হাই, বিলাবো!"

"আমি আপনাকে দেখে আনন্দিত। আজ আমাদের কাছে একটি ছোট কিন্তু খুব তথ্যপূর্ণ পাঠ রয়েছে। আজ আমি আপনাকে জাভাস্ক্রিপ্ট ভাষা সম্পর্কে বলব।"

জাভাস্ক্রিপ্ট - 1

"একটি নতুন ভাষা? কত আকর্ষণীয়..."

"জাভাস্ক্রিপ্ট বর্তমানে ইন্টারনেটের জন্য জনপ্রিয় ধন্যবাদ। আসল বিষয়টি হল যে এটি একমাত্র ভাষা যা সমস্ত ব্রাউজার চালাতে পারে। আপনি যদি আপনার ওয়েব পৃষ্ঠায় অ্যানিমেশন বা যুক্তি যোগ করতে চান, তাহলে আপনি জাভাস্ক্রিপ্ট দিয়ে এটি করতে পারেন।"

"এটা কি সত্য যে জাভাস্ক্রিপ্ট সবচেয়ে জনপ্রিয় ভাষা?"

"হ্যাঁ, তবে এটা বলা আরও সঠিক হবে যে এটি সবচেয়ে জনপ্রিয় 'দ্বিতীয় ভাষা'। C++, Java, C#, এবং PHP প্রোগ্রামারদের তাদের ওয়েবপৃষ্ঠাগুলিকে প্রাণবন্ত করার জন্য জাভাস্ক্রিপ্টে ছোট ছোট স্ক্রিপ্ট লিখতে হবে। কিন্তু, শুধুমাত্র অনেক কম লোক জাভাস্ক্রিপ্টে কোড লিখুন।"

"এর নাম জাভাস্ক্রিপ্ট কেন? এটা প্রায় জাভা মত শোনাচ্ছে।"

"আসলে, প্রাথমিকভাবে, এটিকে লাইভস্ক্রিপ্ট বলা হত, কিন্তু যখন জাভা আরও জনপ্রিয় হতে শুরু করে, তখন এটির নামকরণ করা হয় জাভাস্ক্রিপ্ট।"

"জাভা এবং জাভাস্ক্রিপ্ট দুটি সম্পূর্ণ ভিন্ন ভাষা। তাদের বিভ্রান্ত করবেন না।"

"জাভার বিপরীতে, জাভাস্ক্রিপ্টের ক্লাস নেই, এবং স্ট্যাটিক টাইপিং, মাল্টিথ্রেডিং এবং আরও অনেক কিছু সমর্থন করে না। জাভা নির্মাণ সরঞ্জামের একটি বড় সেটের মতো, যখন জাভাস্ক্রিপ্ট একটি সুইস আর্মি ছুরির মতো। জাভাস্ক্রিপ্টটি সমাধান করার জন্য ডিজাইন করা হয়েছে ছোট কাজ, কিন্তু জাভা বড় এবং খুব বড় কাজ সমাধানের জন্য।"

"জাভাস্ক্রিপ্ট সম্পর্কে এখানে কিছু তথ্য রয়েছে:"

"প্রথম ঘটনা হল জাভাস্ক্রিপ্টের ফাংশন আছে, কিন্তু কোন ক্লাস নেই"

"আপনি সহজভাবে বিভিন্ন ফাংশন ব্যবহার করে প্রোগ্রাম লিখুন এবং এটিই। উদাহরণস্বরূপ:"

জাভাস্ক্রিপ্ট
function min(a, b)
{
 return a
}
জাভা
public static int min(int a, int b)
{
return a
}

"ফাংশন <নাম>" ব্যবহার করে নতুন ফাংশন ঘোষণা করা হয়।

"আরেকটি উদাহরণ:"

জাভাস্ক্রিপ্ট
function min(a, b)
{
 return a < b ? a: b;
}

function main()
{
 var s = 3;
 var t = 5;
 var min = min(s, t);
}
জাভা
public static int min(int a, int b)
{
 return a < b ? a : b;
}

public static void main()
{
 int s = 3;
 int t = 5;
 int min = min(s,t);
}

"দ্বিতীয় সত্য হল জাভাস্ক্রিপ্টের ভেরিয়েবল আছে, কিন্তু সেই ভেরিয়েবলের কোন প্রকার নেই"

"জাভাস্ক্রিপ্ট একটি গতিশীল টাইপ করা ভাষা। এর মানে হল যে ভেরিয়েবলের আসলে কোন প্রকার নেই। যেকোন ভেরিয়েবলকে যেকোন প্রকারের একটি মান বরাদ্দ করা যেতে পারে (মানগুলির ধরন আছে)। উদাহরণস্বরূপ:"

জাভাস্ক্রিপ্ট
function main()
{
 var s = "Bender";
 var k = 1;
 var n = s.length;
}
জাভা
public static void main()
{
 String s ="Bender";
 int k = 1;
 int n = s.length();
}

"কিন্তু গতিশীল টাইপিং রানটাইম ত্রুটির ঝুঁকি বাড়ায়:"

জাভাস্ক্রিপ্ট
function main()
{
 var s = "Bender";
 var k = 1;
 var n = k.length;
}
জাভা
public static void main()
{
 String s ="Bender";
 int k = 1;
 int n = k.length();
}

"উপরের উদাহরণে, আমরা s (একটি স্ট্রিং) এর পরিবর্তে ভেরিয়েবল k (একটি পূর্ণসংখ্যা) ব্যবহার করেছি। জাভাতে, কম্পাইলের সময় ত্রুটিটি সনাক্ত করা হবে, কিন্তু জাভাস্ক্রিপ্টে, এটি পরে ধরা হবে না যখন কোডটি চলছে."

"আপনি যদি জাভাস্ক্রিপ্টে একটি ভেরিয়েবল ঘোষণা করতে চান, তাহলে আপনাকে «var <name>» লিখতে হবে। কোনো পরিবর্তনশীল প্রকার নেই, এবং পদ্ধতি/ফাংশন বা তাদের আর্গুমেন্টের জন্য কোনো প্রকার নেই।"

"জাভাস্ক্রিপ্টের খুব কম কঠোর নিয়ম এবং প্রচুর নৈরাজ্য রয়েছে।"

"আপনি 5টি আর্গুমেন্ট সহ একটি ফাংশন ঘোষণা করতে পারেন এবং এটিকে দুটি দিয়ে কল করতে পারেন-বাকিগুলি কেবল শূন্য হবে। আপনি দুটি আর্গুমেন্ট সহ একটি ফাংশন ঘোষণা করতে পারেন এবং যখন আপনি এটিকে কল করেন তখন পাঁচটি পাস করতে পারেন। তিনটি কেবল ফেলে দেওয়া হবে। সর্বনিম্ন নিয়ন্ত্রণ রয়েছে ভুল, টাইপো এবং পরিবর্তনের উপরে।"

"তৃতীয় সত্য হল জাভাস্ক্রিপ্টে if, for, এবং while স্টেটমেন্ট আছে"

"জাভাস্ক্রিপ্টে if, for, এবং while আছে৷ এটি একটি দুর্দান্ত খবর৷ এই উদাহরণগুলি দেখুন:"

জাভাস্ক্রিপ্ট
function main()
{
 var s = "Bender";

 var result = "";

 for(var i = 0; i < s.length; i++)
 {
  result += s[i] + "";
 }
 if(result.length > 10)
 {
  alert (result);
 }
 else
 {
  while(result.length <= 10)
  {
   result += " ";
  }
  alert(result);
 }
}
জাভা
public static void main()
{
 String s = "Bender";
 char[] s2 = s.toCharArray();
 String result = "";

 for(int i = 0; i < s.length(); i++)
 {
  result += s2[i] + "";
 }
 if(result.length() > 10)
 {
  System.out.println(result);
 }
 else
 {
  while (result.length() <= 10)
  {
   result += " ";
  }
  System.out.println(result);
 }
}

"তারা বেশ একই রকম। আমি মনে করি জাভাস্ক্রিপ্টে লেখা কোড কীভাবে কাজ করে তা আমি বুঝতে পারতাম।"

"আপনার আশাবাদ ভাল।"

"চতুর্থ ঘটনা হল জাভাস্ক্রিপ্ট চেষ্টা-ক্যাচ-অবশেষে ব্লক সমর্থন করে"

" জাভাস্ক্রিপ্টের ব্যতিক্রম ( ত্রুটি ) আছে এবং এটি ভাল। এটিতে চেক করা ব্যতিক্রম নেই , শুধুমাত্র RuntimeException- এর মতো অচেক করা ব্যতিক্রমগুলি । ট্রাই-ক্যাচ-অবশেষে কনস্ট্রাক্ট জাভা-এর মতোই কাজ করে। উদাহরণস্বরূপ:"

জাভাস্ক্রিপ্ট
function main()
{
 try
 {
  var s = null;
  var n = s.length;
 }
 catch(e)
 {
  alert(e);
 }
}
জাভা
public static void main()
{
 try
 {
  String s = null;
  int n = s.length();
 }
 catch(Exception e)
 {
  System.out.println(e);
 }
}

"যখন আমরা স্ট্রিং এর দৈর্ঘ্য পেতে চেষ্টা করি, একটি ব্যতিক্রম নিক্ষেপ করা হবে যেহেতু ভেরিয়েবলটি নাল।"

"পঞ্চম ঘটনা হল জাভাস্ক্রিপ্টে অ্যারে আছে"

"সুসংবাদ: জাভাস্ক্রিপ্টের অ্যারে আছে। খারাপ খবর: কোন তালিকা বা সংগ্রহ নেই।"

"আরেকটি ভাল খবর হল যে অ্যারেগুলি গতিশীলভাবে প্রসারিত হতে পারে যখন নতুন উপাদান যোগ করা হয় এবং উপাদানগুলি সরানোর সাথে সাথে হ্রাস পায়। এটি একটি অ্যারে এবং তালিকার মধ্যে একটি হাইব্রিডের মতো। "

উদাহরণ স্বরূপ:

জাভাস্ক্রিপ্ট
function main()
{
 var m = [1, 3, 18, 45, 'c', "roma", null];
 alert(m.length); // 7

 m.push("end");
 alert(m.length); // 8

 for (var i = 0; i < m.length; i++)
 {
  alert(m[i]);
 }
}
জাভা
public static void main()
{
 List m = Arrays.asList(1, 3, 18, 45,'c', "roma", null);
 System.out.println(m.size()); // 7

 m.add("end");
 System.out.println(m.size()); // 8

 for (int i = 0; i < m.size(); i++)
 {
  System.out.println(m.get(i));
 }
}

"অ্যারে ঘোষণার মধ্যে যারা বর্গ বন্ধনী কি?"

"একটি অ্যারে ঘোষণা ঠিক এটিই। একটি অ্যারে ঘোষণা করার জন্য, আপনাকে বর্গাকার বন্ধনী লিখতে হবে। তারপর আপনি বন্ধনীগুলির মধ্যে অ্যারের উপাদানগুলি তালিকাভুক্ত করুন। আপনি কেবল এক জোড়া বন্ধনী দিয়ে একটি খালি অ্যারে ঘোষণা করেন।"

উদাহরণ
var m = [];

"ষষ্ঠ সত্য হল যে জাভাস্ক্রিপ্টে বস্তু আছে"

"জাভাস্ক্রিপ্টে অবজেক্ট আছে। আসলে, জাভাস্ক্রিপ্টের সবকিছুই একটি অবজেক্ট, এমনকি আদিম প্রকার। প্রতিটি বস্তুকে কী-মানের জোড়ার সেট হিসাবে উপস্থাপন করা হয়। মোটামুটিভাবে বলতে গেলে, প্রতিটি জাভাস্ক্রিপ্ট অবজেক্ট জাভাতে একটি হ্যাশম্যাপের সমতুল্য। এখানে একটি উদাহরণ দেওয়া হল একটি বস্তুর ঘোষণা:"

জাভাস্ক্রিপ্ট
function main()
{
 var m = {
  first_name : "Bill",
  last_name: "Gates",
  age: 54,
  weight: 67,
 children: ["Emma", "Catrin"],
 wife: {
  first_name : "Melinda",
  last_name: "Gates",
  age: 45,
  }
};

 alert(m.first_name); // Bill
 alert(m.age); // 54
 alert(m.wife.first_name); // Melinda

 m.age = 45;
 m.age++;
 m["first_name"] = "Stive";
 m["wife"] = null;
জাভা
public static void main()
{
 HashMap m = new HashMap();
 m.put("first_name", "Bill");
 m.put("last_name", "Gates");
 m.put("age", 54);
 m.put("weight", 67);

 String[] children = {"Emma", "Catrin"};
 m.put("children", children);

 HashMap wife = new HashMap();
 wife.put("first_name", "Melinda");
 wife.put("last_name", "Gates");
 wife.put("age", 45);
 m.put("wife", wife);

 System.out.println(m.get("first_name"));
 System.out.println(m.get("age"));

 HashMap w = ((HashMap)m.get("wife"));
 System.out.println(w.get("first_name")));

 m.put("age", 45);
 m.put("age", ((Integer)m.get("age")) + 1);
 m.put("first_name", "Stive");
 m.put("wife", null);

"একটি নতুন বস্তু তৈরি করতে, আপনাকে শুধু দুটি কোঁকড়া বন্ধনী লিখতে হবে: «{}»।"

"বন্ধনীর ভিতরে, আপনি নিম্নলিখিত বিন্যাসে অবজেক্ট ডেটা নির্দিষ্ট করতে পারেন: «কী, কোলন, মান, কমা»।"

"অবজেক্ট ক্ষেত্র দুটি উপায়ে অ্যাক্সেস করা যেতে পারে:"

সমতুল্য বিবৃতি
m.age = 45;
m[age] = 45;

"যদি নির্দিষ্ট ক্ষেত্রটি বিদ্যমান না থাকে, তাহলে এটি তৈরি করা হয়।"

"আমার ত্রাণ ভালভ ওভারলোড বা অন্য কিছু। আমি মনে করি আমাদের বিরতি নেওয়া উচিত।"

"সপ্তম সত্য হল যে জাভাস্ক্রিপ্ট তৈরি করা হয়েছিল ওয়েব পৃষ্ঠাগুলির ভিতরে কাজ করার জন্য।"