"हाय, अमिगो!"

"हाय, बिलाबो!"

"तुम्हाला पाहून मला आनंद झाला. आज आमच्याकडे एक छोटासा पण अतिशय माहितीपूर्ण धडा आहे. आज मी तुम्हाला JavaScript भाषेबद्दल सांगेन."

जावास्क्रिप्ट - १

"एक नवीन भाषा? किती मनोरंजक..."

"जावास्क्रिप्ट सध्या इंटरनेटमुळे लोकप्रिय आहे. वस्तुस्थिती अशी आहे की ही एकमेव भाषा आहे जी सर्व ब्राउझर कार्यान्वित करू शकतात. जर तुम्हाला तुमच्या वेब पेजवर अॅनिमेशन किंवा लॉजिक जोडायचे असेल, तर तुम्ही ते JavaScript सह करू शकता."

"जावास्क्रिप्ट ही सर्वात लोकप्रिय भाषा आहे हे खरे आहे का?"

"होय, पण ती सर्वात लोकप्रिय 'द्वितीय भाषा' आहे असे म्हणणे अधिक अचूक ठरेल. C++, Java, C# आणि PHP प्रोग्रामरना त्यांची वेबपृष्ठे जिवंत ठेवण्यासाठी JavaScript मध्ये लहान स्क्रिप्ट लिहिणे आवश्यक आहे. परंतु, फारच कमी लोक फक्त JavaScript मध्ये कोड लिहा."

"याचे नाव JavaScript का ठेवले आहे? ते जवळजवळ Java सारखे वाटते."

"वास्तविक, सुरुवातीला, याला लाइव्हस्क्रिप्ट असे म्हणतात, परंतु जेव्हा जावा अधिक लोकप्रिय होऊ लागला तेव्हा त्याचे नाव जावास्क्रिप्ट ठेवण्यात आले."

"जावा आणि जावास्क्रिप्ट या दोन पूर्णपणे भिन्न भाषा आहेत. त्यांना गोंधळात टाकू नका."

"जावाच्या विपरीत, JavaScript मध्ये वर्ग नाहीत, आणि स्थिर टायपिंग, मल्टीथ्रेडिंग आणि बरेच काही समर्थन करत नाही. Java हे बांधकाम साधनांच्या मोठ्या संचासारखे आहे, तर JavaScript हे स्विस आर्मी चाकूसारखे आहे. JavaScript निराकरण करण्यासाठी डिझाइन केलेले आहे लहान कार्ये, परंतु Java मोठी आणि खूप मोठी कार्ये सोडवण्यासाठी आहे."

"येथे JavaScript बद्दल काही तथ्ये आहेत:"

"पहिली वस्तुस्थिती अशी आहे की जावास्क्रिप्टमध्ये कार्ये आहेत, परंतु वर्ग नाहीत"

"तुम्ही फक्त अनेक फंक्शन्स वापरून प्रोग्राम लिहिता आणि तेच. उदाहरणार्थ:"

JavaScript
function min(a, b)
{
 return a
}
जावा
public static int min(int a, int b)
{
return a
}

"फंक्शन <नाम>" वापरून नवीन फंक्शन्स घोषित केले जातात.

"दुसरे उदाहरण:"

JavaScript
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);
}

"दुसरी वस्तुस्थिती अशी आहे की JavaScript मध्ये व्हेरिएबल्स आहेत, परंतु त्या व्हेरिएबल्समध्ये प्रकार नाहीत"

"JavaScript ही डायनॅमिकली टाईप केलेली भाषा आहे. याचा अर्थ व्हेरिएबल्समध्ये प्रकार नसतात. कोणत्याही व्हेरिएबलला कोणत्याही प्रकारचे मूल्य नियुक्त केले जाऊ शकते (मूल्यांमध्ये प्रकार असतात). उदाहरणार्थ:"

JavaScript
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();
}

"परंतु डायनॅमिक टायपिंगमुळे रनटाइम त्रुटींचा धोका वाढतो:"

JavaScript
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 (एक पूर्णांक) व्हेरिएबल वापरले आहे. Java मध्ये, कंपाइलच्या वेळी त्रुटी आढळली जाईल, परंतु JavaScript मध्ये, कोड नंतर तोपर्यंत पकडला जाणार नाही. चालू आहे."

"जर तुम्हाला JavaScript मध्ये व्हेरिएबल घोषित करायचे असेल, तर तुम्हाला «var <name>» लिहावे लागेल. कोणतेही व्हेरिएबल प्रकार नाहीत आणि पद्धती/फंक्शन्स किंवा त्यांच्या वितर्कांसाठी कोणतेही प्रकार नाहीत."

"जावास्क्रिप्टमध्ये खूप कमी कठोर नियम आहेत आणि बरीच अराजकता आहे."

"तुम्ही 5 वितर्कांसह फंक्शन घोषित करू शकता आणि त्यास दोनसह कॉल करू शकता—बाकीचे फक्त शून्य असेल. तुम्ही दोन वितर्कांसह फंक्शन घोषित करू शकता आणि कॉल केल्यावर पाच पास करू शकता. तीन फक्त फेकून दिले जातील. किमान नियंत्रण आहे चुका, टायपो आणि बदलांवर."

"तिसरी वस्तुस्थिती अशी आहे की JavaScript मध्ये if, for, आणि while स्टेटमेंट आहेत"

"JavaScript मध्ये if, for, आणि while आहे. ही चांगली बातमी आहे. ही उदाहरणे पहा:"

JavaScript
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);
 }
}

"ते अगदी सारखेच आहेत. मला वाटते की JavaScript मध्ये लिहिलेला कोड कसा काम करतो हे मी समजू शकेन."

"तुमचा आशावाद चांगला आहे."

"चौथी वस्तुस्थिती अशी आहे की जावास्क्रिप्ट ट्राय-कॅच-फायनल ब्लॉकला सपोर्ट करते"

" JavaScript ला अपवाद ( त्रुटी ) आहेत आणि ते चांगले आहे. त्यात तपासलेले अपवाद नाहीत , फक्त RuntimeException सारखेच अनचेक केलेले अपवाद आहेत . ट्राय-कॅच-फायनल कन्स्ट्रक्ट Java प्रमाणेच कार्य करते. उदाहरणार्थ:"

JavaScript
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);
 }
}

"जेव्हा आपण स्ट्रिंगची लांबी मिळवण्याचा प्रयत्न करतो, तेव्हा व्हेरिएबल शून्य असल्याने अपवाद टाकला जाईल."

"पाचवी वस्तुस्थिती अशी आहे की JavaScript मध्ये अॅरे आहेत"

"चांगली बातमी: JavaScript मध्ये अॅरे आहेत. वाईट बातमी: कोणतीही सूची किंवा संग्रह नाहीत."

"आणखी एक चांगली बातमी अशी आहे की जेव्हा नवीन घटक जोडले जातात तेव्हा अॅरे डायनॅमिकरित्या विस्तारू शकतात आणि घटक काढून टाकल्यावर कमी होतात. हे अॅरे आणि सूचीमधील संकरासारखे आहे. "

उदाहरणार्थ:

JavaScript
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 = [];

"सहावी वस्तुस्थिती अशी आहे की JavaScript मध्ये वस्तू आहेत"

"JavaScript मध्ये ऑब्जेक्ट्स असतात. खरं तर, JavaScript मधील प्रत्येक गोष्ट एक ऑब्जेक्ट आहे, अगदी आदिम प्रकार देखील. प्रत्येक ऑब्जेक्ट हे की-व्हॅल्यू जोड्यांचा संच म्हणून दर्शविले जाते. साधारणपणे, प्रत्येक JavaScript ऑब्जेक्ट Java मधील HashMap च्या समतुल्य आहे. येथे एक उदाहरण आहे ऑब्जेक्ट घोषणा:"

JavaScript
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;

"निर्दिष्ट फील्ड अस्तित्वात नसल्यास, ते तयार केले जाते."

"माझा रिलीफ व्हॉल्व्ह ओव्हरलोड झाला आहे किंवा काहीतरी. मला वाटते की आपण ब्रेक घेतला पाहिजे."

"सातवी वस्तुस्थिती अशी आहे की जावास्क्रिप्ट वेब पृष्ठांमध्ये कार्य करण्यासाठी तयार केली गेली आहे."