JavaScript के बारे में जानकारी

अपना नाम होने के बावजूद, JavaScript केवल Java से संबंधित है, क्योंकि दोनों में कुछ-कुछ वाक्याँश से मिलती-जुलती चीज़ें. JavaScript के शुरुआती डेवलपमेंट के दौरान उसका सिंटैक्स था आम तौर पर, यह Java के सिंटैक्स से प्रेरित था और इसे "LiveScript" कहा जाता था CANNOT TRANSLATE इसे Netscape Navigator के बीटा वर्शन ने 1995 में शिप किया था. यह दोनों वर्शन, कुछ लोगों की ज़रूरतों के हिसाब से बनाए गए थे के बारे में बात करते हैं और इस तथ्य के हित में कहते हैं कि यह "लाइव" चलता है. ब्राउज़र में खोलें. Microsoft ने अपना JavaScript लागू करने का तरीका, "JScript" Internet Explorer 3.0 के साथ लॉन्च किया गया.

Netscape ने यह शुरुआती काम सबमिट किया Ecma International एक ऐसा संगठन है जो यह टेक्नोलॉजी स्टैंडर्ड बनाने और पब्लिश करने के साथ-साथ, स्क्रिप्टिंग भाषा अन्य ब्राउज़र से समझनी चाहिए. 1997 में, Ecma अंतरराष्ट्रीय स्तर पर ECMA-262 रिलीज़ किया गया, जिसमें स्क्रिप्टिंग के पहले वर्शन के लिए स्टैंडर्ड तय किया गया है ECMAScript नाम की भाषा इस्तेमाल करती है. ECMAScript वह स्टैंडर्ड है जो कॉन्टेंट बनाने की प्रोसेस के बारे में जानकारी देता है का इस्तेमाल बहुत आसानी से किया जा सकता है. उदाहरण के लिए, Microsoft का बाद में अब काम नहीं कर रहे JScript, Adobe की ActionScript, और JavaScript.

वीडियो के खास पहलुओं और सुविधाओं के बारे में बात करते समय यह फ़र्क़ दिखाना ज़रूरी है JavaScript. "ES5" का मतलब है पहला बड़ा "वर्शन" रिलीज़ की तारीख ECMAScript स्टैंडर्ड को 2009 में लॉन्च किया गया था. इसके बाद, कई छोटे-छोटे हिस्सों का डेवलपमेंट हुआ. "ES6" (या "ES2015"), Google News के छठे वर्शन के मानकों का शॉर्टहैंड है ECMAScript, 2015 में रिलीज़ की गई थी. ES6 के बाद, ECMAScript के नए एडिशन वर्शन हर साल रिलीज़ किए जाते हैं. इसमें हर वर्शन में कुछ बदलाव किए जाते हैं और कुछ नई चीज़ें जोड़ी जाती हैं वर्ष में "ES2016" का संदर्भ देता है या "ES2017" शामिल है.

बुनियादी नियम

कंपाइल की गई भाषाओं के उलट, किसी व्यक्ति के लिखे गए कोड से JavaScript का अनुवाद नहीं किया जाता एक ऐसे रूप में हो जिसे ब्राउज़र समझ सके. ब्राउज़र को स्क्रिप्ट भेजी जाती है मार्कअप, इमेज, और स्टाइलशीट जैसी ऐसेट के साथ-साथ, ब्राउज़र ठीक उसी तरह लिखा गया था: यूनिकोड वर्णों के ऐसे क्रम में जिसे कोई भी व्यक्ति आसानी से पढ़ सके, जिसे बाएं से दाएं और ऊपर से नीचे पार्स किया गया है.

जब किसी JavaScript अनुवादक को स्क्रिप्ट मिलती है, तो यह सबसे पहले लेक्सिकल विश्लेषण, इसकी मदद से स्क्रिप्ट बनाने वाले वर्णों की लंबी स्ट्रिंग को पार्स किया जाता है और उसे नीचे दिए गए अलग-अलग इनपुट एलिमेंट में बदल दिया जाता है:

  • टोकन
  • फ़ॉर्मैट कंट्रोल वाले वर्ण
  • लाइन टर्मिनेटर
  • टिप्पणियां
  • व्हाइटस्पेस (करीब-करीब हमेशा टैब और स्पेस का मतलब होता है).

फिर से लोड करने या इस पेज से बाहर जाने के बाद भी, स्क्रिप्ट के नतीजे नहीं बने रहेंगे करना होगा, जब तक कि आप ऐसा करने के लिए साफ़ तौर पर निर्देश न दें पर जाएं.

बड़े लेवल पर JavaScript ऐप्लिकेशन स्टेटमेंट से बने होते हैं और एक्सप्रेशन.

विवरण

स्टेटमेंट निर्देश की एक इकाई होती है. यह कोड की एक या ज़्यादा लाइनों से मिलकर बनी होती है किसी कार्रवाई का प्रतिनिधित्व करते हैं. उदाहरण के लिए, आप myVariable नाम के वैरिएबल का मान:

let myVariable = 4;

myVariable;
> 4

सही तरीके से समझने के लिए, स्टेटमेंट के आखिर में सेमीकोलन होना चाहिए. हालांकि, इन JavaScript लिखते समय, सेमीकोलन की ज़रूरत नहीं होती है. इस सुविधा को कहते हैं अपने-आप सेमीकोलन लगाने की मदद से, लाइन में किसी पूरे कथन के बाद आने वाले ब्रेक को सेमीकोलन माना जाएगा, अगर वह मौजूद नहीं है सेमीकोलन से गड़बड़ी होगी.

एएसआई, गड़बड़ी में सुधार करने की सुविधा है. यह JavaScript का ऐसा हिस्सा नहीं है जिसमें अनुमति मिली हो. क्योंकि गड़बड़ी में सुधार पर बहुत ज़्यादा भरोसा करने से, आपके कारोबार के बारे में साफ़-साफ़ जानकारी नहीं मिलती कोड है, तो आपको अब भी हर स्टेटमेंट को मैन्युअल रूप से सेमीकोलन से खत्म करना होगा.

स्टेटमेंट ब्लॉक करें

ब्लॉक स्टेटमेंट, किसी जोड़े में कई स्टेटमेंट और एलानों को ग्रुप में रखता है ({}). इसकी मदद से स्टेटमेंट को उन जगहों पर जोड़ा जा सकता है जहां JavaScript एक ही की उम्मीद करता है.

आपको अक्सर ब्लॉक स्टेटमेंट, उनके बगल में दिखेंगे कंट्रोल फ़्लो स्टेटमेंट, जैसे if:

if ( x === 2 ) {
  //some behavior;
}

एक्सप्रेशन

एक्सप्रेशन, कोड की एक यूनिट है, जिससे वैल्यू मिलती है. इसलिए, यह जहां भी वैल्यू की उम्मीद हो वहां इस्तेमाल किया जाता है. 2 + 2 एक ऐसा एक्सप्रेशन है जो मान 4:

2 + 2;
> 4

"ग्रुपिंग ऑपरेटर", पास वाले ब्रैकेट का मेल खाने वाला जोड़ा होता है. इसका इस्तेमाल इन कामों के लिए किया जाता है किसी एक्सप्रेशन के कुछ हिस्सों को ग्रुप में बांटें, ताकि यह पक्का किया जा सके कि एक्सप्रेशन का एक हिस्सा एक इकाई के रूप में मूल्यांकन किया जाता है. उदाहरण के लिए, ग्रुप बनाने वाले ऑपरेटर का इस्तेमाल किया जा सकता है ऑपरेशन के गणितीय क्रम को बदलने के लिए, या कोड को आसानी से पढ़ा जा सके, इसके लिए:

2 + 2 * 4;
> 10

( 2 + 2 ) * 4;
> 16

let myVariable = ( 2 + 2 );

myVariable;
> 4

कमज़ोर टाइपिंग

JavaScript एक कमज़ोर टाइप की गई भाषा है, जिसका मतलब है कि डेटा मान की ज़रूरत नहीं है एक खास डेटा टाइप के तौर पर मार्क किया जाना चाहिए. अच्छी तरह से टाइप की गई भाषा के उलट, JavaScript आपकी टारगेट की गई भाषा का अनुमान लगा सकता है और वैल्यू को उस टाइप में बदल देता है. इस प्रोसेस को टाइप करें.

उदाहरण के लिए, अगर स्ट्रिंग की वैल्यू में, टाइप की गई किसी खास भाषा की कोई संख्या जोड़ी जाती है, जैसे कि Python, तो नतीजे में एक गड़बड़ी मिलती है:

>>> "1" + 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects

कोई गड़बड़ी लौटाने के बजाय, JavaScript संख्या की वैल्यू को स्ट्रिंग में बदल देता है और दो वैल्यू को जोड़ता है. वैल्यू जोड़ते समय, इस तरीके की सबसे ज़्यादा संभावना होती है स्ट्रिंग के लिए कोई भी मान:

"1" + 1;
> "11"

डेटा टाइप को खास तौर पर अन्य डेटा टाइप के लिए भी बनाया जा सकता है. नीचे दिए गए उदाहरण में, JavaScript में पहले से मौजूद सुविधा का इस्तेमाल करके, न्यूमेरिक वैल्यू 100 को स्ट्रिंग वैल्यू के तौर पर "100" पर सेट करती है toString तरीका:

let myVariable = 100;

typeof myVariable;
> "number"

myVariable = myVariable.toString();
> "100"

typeof myVariable;
> "string"

केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर)

एचटीएमएल और ज़्यादातर सीएसएस के उलट, JavaScript खुद पूरी तरह से केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) होता है. इसका मतलब यह है कि आपको हमेशा बड़े पैमाने पर निवेश करना चाहिए, ताकि आपके तय किए गए आइडेंटिफ़ायर के लिए, भाषा में मौजूद प्रॉपर्टी और मेथड खुद को बेहतर बनाएं.

console.log( "Log this." );
> Log this.

console.Log( "Log this too." );
> Uncaught TypeError: console.Log is not a function
const myVariable = 2;

myvariable;
> Uncaught ReferenceError: myvariable is not defined

myVariable;
> 2

वाइटस्‍पेस

JavaScript की जगह खाली सफ़ेद जगह नहीं होती है. इसका मतलब है कि अनुवादक खाली सफ़ेद जगह की मात्रा और टाइप (टैब या खाली जगह) की जानकारी दें.

                     console.log(       "Log this"  );console.log("Log this too");
> "Log this."
> "Log this too."

हालांकि, खाली सफ़ेद जगह की मौजूदगी, दो शब्दों के बीच सेपरेटर के तौर पर अहम हो सकती है लेक्सिकल टोकन:

let x;

[टोकन: [let] [x] ]

letx;
> Uncaught ReferenceError: letx is not defined

[टोकन: [letx] ]

जहां खाली लेक्सिकल टोकन को अलग करने के लिए खाली सफ़ेद जगह का इस्तेमाल किया जाता है वहां पार्सर खाली सफ़ेद जगह और उसके टाइप को अनदेखा करता है:

let           x                             =                           2;

[टोकन: [let] [x] [=] [2] ]

लाइन ब्रेक पर भी यही बात लागू होती है. हालांकि, कुछ मामलों में लाइन ब्रेक से स्टेटमेंट को समय से पहले बंद करने से जुड़ी समस्याएं:

let x
=
2;

[टोकन: [let] [x] [=] [2] ]

स्टाइल के आधार पर कहें, तो कुछ ऐसे स्टेटमेंट होते हैं जिनमें अक्सर एक लाइन होती है:

let x = 1;
let y = 2;

वहीं कुछ स्टेटमेंट में आम तौर पर कई लाइनों का इस्तेमाल किया जाता है:

if ( x == 2 ) {
  //some behavior;
}

हालांकि, इस तरह के नियम सिर्फ़ इसलिए ज़रूरी हैं, ताकि उन्हें आसानी से पढ़ा जा सके. JavaScript पिछले उदाहरणों की व्याख्या उसी तरह करता है जैसे नीचे दिए गए हैं:

let x=1;let y=2;
if(x==2){}

इस वजह से, अपने-आप काम करने वाली एक प्रोसेस, जो ग़ैर-ज़रूरी खाली सफ़ेद जगह को हटा देती है JavaScript को तैयार करने के लिए, स्क्रिप्ट फ़ाइलों का इस्तेमाल करके, ट्रांसफ़र का साइज़ कम करना एक आम तरीका है और कई अन्य ऑप्टिमाइज़ेशन की ज़रूरत होती है.

JavaScript में खाली सफ़ेद जगह वाले वर्णों का इस्तेमाल करना काफ़ी हद तक लेखक का विषय है और मेंटेनर की प्राथमिकताएं शामिल होती हैं. कई डेवलपर वाले JavaScript प्रोजेक्ट जोड़ने वाला कोड अक्सर कुछ खास खाली सफ़ेद जगह का सुझाव देता है या लागू करता है एक जैसी कोड फ़ॉर्मैटिंग को पक्का करना. उदाहरण के लिए, नेस्ट किए गए स्टेटमेंट इंडेंट करें:

let myVariable = 10;

if ( typeof myVariable === "number" ) {
    console.log( "This variable is a number." );
    if( myVariable > 5 ) {
     console.log( "This variable is greater than five." );
    }
}

> "This variable is a number."
> "This variable is greater than five."

देखें कि आपको कितना समझ आया है

एक्सप्रेशन क्या होता है?

कोड की वह यूनिट जिसकी वजह से कोई वैल्यू मिलती है.
यह एक टिप्पणी है, जो बताती है कि कोड क्या कर रहा है.
स्टेटमेंट और एलानों का ग्रुप.

JavaScript केस-सेंसिटिव (बड़े और छोटे अक्षरों में अंतर) होता है.

सही
गलत