जवाबों:
के बाद अर्धविराम समारोह घोषणाओं हैं आवश्यक नहीं ।
एक FunctionDeclarationका व्याकरण इस प्रकार निर्दिष्ट किया जाता है:
function Identifier ( FormalParameterListopt ) { FunctionBody }
कोई अर्धविराम व्याकरणिक रूप से आवश्यक नहीं है, लेकिन आश्चर्य हो सकता है कि क्यों?
अर्धविराम एक दूसरे से अलग बयानों की सेवा करते हैं , और FunctionDeclarationएक बयान नहीं है ।
FunctionDeclarationsमूल्यांकन में प्रवेश करने से पहले मूल्यांकन किया जाता है, उत्थापन एक सामान्य शब्द है जिसका उपयोग इस व्यवहार को समझाने के लिए किया जाता है।
शब्द "फंक्शन डिक्लेरेशन" और "फंक्शन स्टेटमेंट" का अक्सर गलत तरीके से इस्तेमाल किया जाता है, क्योंकि ECMAScript स्पेसिफिकेशन में कोई फंक्शन स्टेटमेंट नहीं बताया गया है, हालाँकि कुछ ऐसे इम्प्लीमेंटेशन हैं, जो अपने ग्रामर में एक फंक्शन स्टेटमेंट को शामिल करते हैं, -मोटीली मोज़िला- लेकिन फिर से अमानक है।
हालाँकि FunctionExpressions, जहाँ आप उपयोग करते हैं , अर्धविराम हमेशा अनुशंसित होते हैं :
var myFn = function () {
//...
};
(function () {
//...
})();
यदि आप उपरोक्त उदाहरण में पहले फ़ंक्शन के बाद अर्धविराम को छोड़ देते हैं, तो आपको पूरी तरह से अवांछित परिणाम मिलेंगे:
var myFn = function () {
alert("Surprise!");
} // <-- No semicolon!
(function () {
//...
})();
पहले फ़ंक्शन को तुरंत निष्पादित किया जाएगा, क्योंकि दूसरे के आसपास के कोष्ठक, Argumentsएक फ़ंक्शन कॉल के रूप में व्याख्या किए जाएंगे ।
अनुशंसित व्याख्यान:
FunctionDeclarationबनाम पर अधिक FunctionExpression)मैं फ़ंक्शन-ए-वेरिएबल घोषणाओं के बाद उनका उपयोग करता हूं:
var f = function() { ... };
लेकिन शास्त्रीय शैली की परिभाषाओं के बाद नहीं:
function f() {
...
}
जेएस लिंट डे-फैक्टो कन्वेंशन है, और यह फ़ंक्शन बॉडी के बाद कोई अर्धविराम नहीं कहता है। "अर्धविराम" अनुभाग देखें ।
बस संगत रहो! उन्हें ज़रूरत नहीं है, लेकिन मैं व्यक्तिगत रूप से उनका उपयोग करता हूं क्योंकि अधिकांश खनन तकनीक अर्ध-बृहदान्त्र (उदाहरण के लिए, पैकर ) पर निर्भर करती हैं ।
वास्तव में सिर्फ आपकी पसंद पर निर्भर करता है। मुझे अर्ध कॉलनों के साथ कोड की लाइनें समाप्त करना पसंद है क्योंकि मैं जावा, सी ++, सी #, आदि के लिए उपयोग किया जाता हूं, इसलिए मैं जावास्क्रिप्ट में कोडिंग के लिए समान मानकों का उपयोग करता हूं।
मैं आमतौर पर अर्ध कॉलों में फ़ंक्शन घोषणाओं को समाप्त नहीं करता हूं, लेकिन यह सिर्फ मेरी प्राथमिकता है।
ब्राउज़र इसे किसी भी तरह से चलाएंगे, लेकिन हो सकता है कि किसी दिन वे इसे नियंत्रित करने वाले कुछ सख्त मानकों के साथ आएंगे।
कोड का उदाहरण मैं लिखूंगा:
function handleClickEvent(e)
{
// comment
var something = true; // line of code
if (something) // code block
{
doSomething(); // function call
}
}
यह वास्तव में सम्मेलन या स्थिरता के मुद्दे से अधिक है।
मैं काफी निश्चित हूं हर बयान के बाद अर्धविराम नहीं देना आंतरिक पार्सर को धीमा कर देता है क्योंकि यह पता लगाना होता है कि कथन का अंत कहां है। मेरी इच्छा है कि आपके पास सकारात्मक पुष्टि करने के लिए आपके पास कुछ उपयोगी संख्याएं हों, लेकिन हो सकता है कि आप इसे स्वयं Google कर सकें। :)
इसके अलावा, जब आप कोड को संक्षिप्त या छोटा कर रहे होते हैं, तो अर्ध-कॉलनों की कमी से आपकी स्क्रिप्ट का एक छोटा संस्करण बन सकता है, जो आप नहीं चाहते थे क्योंकि सभी सफेद स्थान चले जाते हैं।
जब मैंने अपनी लिपियों को छोटा किया तो मुझे महसूस हुआ कि मुझे ऐसे कार्यों के लिए अर्धविराम का उपयोग करने की आवश्यकता है जो समान चिह्न से शुरू होते हैं। यदि आप किसी फ़ंक्शन को var के रूप में परिभाषित करते हैं, तो हाँ आपको अर्धविराम का उपयोग करने की आवश्यकता है।
अर्धविराम की जरूरत है
var x = function(){};
var x = new function(){};
this.x = function(){};
अर्धविराम की जरूरत नहीं है
function x(){}
सरल:
अर्धविरामों को छोड़ना एक अच्छा अभ्यास है ;फ़ंक्शन ब्रेस के अंत के बाद । उन्हें वर्षों से एक सर्वोत्तम अभ्यास माना जाता है।
हमेशा उनका उपयोग करने का एक फायदा यह है कि यदि आप अपने जावास्क्रिप्ट को छोटा करना चाहते हैं।
जावास्क्रिप्ट को छोटा करते हुए, फ़ाइल के आकार को थोड़ा कम करने में मदद करता है।
लेकिन सबसे अच्छा अभ्यास और उपरोक्त उत्तर के लिए, फ़ंक्शन टैग के बाद इसका उपयोग करने की अनुशंसा नहीं की जाती है।
यदि आप अर्धविरामों का उपयोग नहीं करते हैं, और यदि आप छोटा करना चाहते हैं (जैसे कि बहुत सारे डेवलपर्स करना पसंद करते हैं यदि उनकी साइट बहुत अधिक जावास्क्रिप्ट परोसती है) तो आपको सभी प्रकार की त्रुटियां / चेतावनियाँ मिल सकती हैं।
किसी फ़ंक्शन के बाद अर्धविराम का उपयोग करना आवश्यक नहीं है या नहीं, आपके प्रोग्राम में त्रुटियों का कारण नहीं है। हालाँकि, यदि आप अपने कोड को छोटा करने की योजना बनाते हैं, तो फ़ंक्शन के बाद अर्धविराम का उपयोग करना एक अच्छा विचार है। उदाहरण के लिए आप नीचे दिए गए कोड की तरह हैं
//file one
var one=1;
var two=2;
function tryOne(){}
function trytwo(){}
तथा
//file two
var one=1;
var two=2;
function tryOne(){};
function trytwo(){};
जब आप दोनों को छोटा करते हैं, तो आपको आउटपुट के रूप में निम्नलिखित मिलेगा
//file one
var one=1;var two=2;function tryOne(){}
function trytwo(){}
तथा
//file two
var one=1;var two=2;function tryOne(){};function trytwo(){};