खोज…
स्वचालित अर्धविराम सम्मिलन के नियम
अर्धविराम सम्मिलन के तीन बुनियादी नियम हैं:
- जब, कार्यक्रम को बाएं से दाएं की ओर पार्स किया जाता है, तो एक टोकन ( अपमानजनक टोकन कहा जाता है) का सामना करना पड़ता है, जो व्याकरण के किसी भी उत्पादन की अनुमति नहीं है, तो निम्न के अधिक या अधिक होने पर एक अर्धविराम स्वचालित रूप से अपमानजनक टोकन से पहले डाला जाता है। स्थितियां सत्य हैं:
- आक्रामक टोकन को पिछले टोकन से कम से कम एक
LineTerminator
द्वारा अलग किया जाता है।- अपमानजनक टोकन है
}
।
- जब, कार्यक्रम को बाएं से दाएं तक पार्स किया जाता है, तो टोकन के इनपुट स्ट्रीम का अंत होता है और पार्सर इनपुट टोकन स्ट्रीम को एक ही पूर्ण ECMAScript
Program
रूप में पार्स करने में असमर्थ होता है, फिर एक अर्धविराम स्वचालित रूप से अंत में डाला जाता है इनपुट स्ट्रीम।- जब, कार्यक्रम को बाएं से दाएं तरफ पार्स किया जाता है, तो एक टोकन का सामना करना पड़ता है जिसे व्याकरण के कुछ उत्पादन द्वारा अनुमति दी जाती है, लेकिन उत्पादन एक प्रतिबंधित उत्पादन है और एनोटेशन के बाद एक टर्मिनल या नॉनटर्मिनल के लिए टोकन पहला टोकन होगा। प्रतिबंधित उत्पादन (और इसलिए इस तरह के टोकन को प्रतिबंधित टोकन कहा जाता है) के भीतर "" कोई
LineTerminator
नहीं है] , और प्रतिबंधित टोकन को पिछले टोकन से कम से कम एकLineTerminator
द्वारा अलग किया जाता है, फिर प्रतिबंधित टोकन से पहले एकLineTerminator
स्वचालित रूप से डाला जाता है। ।हालांकि, वहाँ से ठीक पहले के नियमों पर एक अतिरिक्त अधिभावी शर्त है: अर्धविराम स्वतः डाला कभी नहीं जाता है, तो अर्धविराम तो एक खाली बयान के रूप में पार्स की जाने वाली या यदि वह अर्धविराम एक के शीर्षक में दो अर्धविराम से एक बन जाएगा
for
बयान (देखें 12.6.3)।
स्रोत: ECMA-262, पांचवें संस्करण ECMAScript विशिष्टता:
स्वचालित अर्धविराम सम्मिलन से प्रभावित कथन
- खाली बयान
-
var
कथन - अभिव्यक्ति कथन
-
do-while
बयान -
continue
बयान -
break
बयान -
return
विवरण -
throw
बयान
उदाहरण:
जब टोकन के इनपुट स्ट्रीम का अंत होता है और पार्सर इनपुट टोकन स्ट्रीम को एक पूर्ण कार्यक्रम के रूप में पार्स करने में असमर्थ होता है, तो इनपुट स्ट्रीम के अंत में एक अर्धविराम स्वचालित रूप से डाला जाता है।
a = b
++c
// is transformed to:
a = b;
++c;
x
++
y
// is transformed to:
x;
++y;
सरणी अनुक्रमण / शाब्दिक
console.log("Hello, World")
[1,2,3].join()
// is transformed to:
console.log("Hello, World")[(1, 2, 3)].join();
वापसी विवरण:
return
"something";
// is transformed to
return;
"something";
वापसी बयानों पर अर्धविराम प्रविष्टि से बचें
जावास्क्रिप्ट कोडिंग कन्वेंशन को उनकी घोषणा की एक ही पंक्ति पर ब्लॉकों के शुरुआती ब्रैकेट को रखना है:
if (...) {
}
function (a, b, ...) {
}
अगली पंक्ति के बजाय:
if (...)
{
}
function (a, b, ...)
{
}
वस्तुओं को वापस करने वाले विवरणों में अर्धविराम प्रविष्टि से बचने के लिए इसे अपनाया गया है:
function foo()
{
return // A semicolon will be inserted here, making the function return nothing
{
foo: 'foo'
};
}
foo(); // undefined
function properFoo() {
return {
foo: 'foo'
};
}
properFoo(); // { foo: 'foo' }
अधिकांश भाषाओं में प्रारंभिक ब्रैकेट की नियुक्ति केवल व्यक्तिगत प्राथमिकता का मामला है, क्योंकि कोड के निष्पादन पर इसका कोई वास्तविक प्रभाव नहीं है। जावास्क्रिप्ट में, जैसा कि आपने देखा है, प्रारंभिक ब्रैकेट को अगली पंक्ति में रखने से मूक त्रुटियां हो सकती हैं।