जावास्क्रिप्ट यह जानने के लिए कोष्ठक पर निर्भर करता है कि फ़ंक्शन कॉल कहाँ से शुरू और समाप्त होती है। यदि आप किसी फ़ंक्शन के बंद होने से पहले सिंटैक्स के एक टुकड़े को याद करते हैं, तो आपको तर्क सूची के बाद "सिंटैक्स त्रुटि:अनुपलब्ध) त्रुटि का सामना करना पड़ेगा।
यह मार्गदर्शिका इस बात की पड़ताल करती है कि इस त्रुटि का क्या अर्थ है और इसे क्यों उठाया गया है। हम इस समस्या के एक उदाहरण के माध्यम से चलेंगे ताकि आप सीख सकें कि समस्या को ठीक करने के लिए आपको क्या जानना चाहिए।
सिंटैक्स त्रुटि:अनुपलब्ध ) तर्क सूची के बाद
तर्क सूची के बाद "लापता)" संदेश हमें बताता है कि फ़ंक्शन कॉल के अंदर एक सिंटैक्स त्रुटि है।
ऐसा तब हो सकता है जब आप तर्कों की सूची के अंत में एक अल्पविराम जोड़ते हैं जिसके बाद कोई अन्य तर्क नहीं आता है।
जावास्क्रिप्ट प्रत्येक अल्पविराम के बाद एक और तर्क की अपेक्षा करता है। यदि जावास्क्रिप्ट को कोई अन्य तर्क नहीं मिल रहा है, तो आपके कोड को सफलतापूर्वक पार्स नहीं किया जा सकता है और समापन कोष्ठक एक सिंटैक्स त्रुटि उत्पन्न करेगा।
इस समाधान के लिए एक अन्य संभावित कारण अल्पविराम को संलग्न कर रहा है जिसे आपको स्ट्रिंग के अंदर किसी फ़ंक्शन में तर्कों को अलग करने की आवश्यकता है।
यदि आप इस त्रुटि का सामना करते हैं, तो उस कोड के सभी सिंटैक्स को ध्यान से पढ़ें, जिसे जावास्क्रिप्ट त्रुटि इंगित करती है। सुनिश्चित करें कि आपके सभी कोष्ठक मेल खाते हैं और आपने अपने फ़ंक्शन कॉल के अंदर अल्पविराम का सही उपयोग किया है।
एक उदाहरण परिदृश्य
हम एक प्रोग्राम लिखने जा रहे हैं जो यह गणना करता है कि कोई छात्र स्कूल में परीक्षा में उत्तीर्ण हुआ है या अनुत्तीर्ण हुआ है। शुरू करने के लिए, आइए एक छात्र द्वारा अर्जित ग्रेड को परिभाषित करें और एक संदेश हम कंसोल पर प्रिंट करेंगे जो हमें सूचित करेगा कि कोई छात्र पास हुआ है या असफल:
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
var grade = 57; var message = "This student has X their test.";
JavaScript वैरिएबल "message" में एक प्लेसहोल्डर अक्षर X शामिल होता है। हम इसे बाद में अपने प्रोग्राम में "पास" या "असफल" से बदल देंगे।
यदि किसी छात्र का ग्रेड 53 से अधिक है, तो उन्होंने परीक्षा उत्तीर्ण की है। अन्यथा, वे असफल रहे हैं।
अब जब हमने अपने छात्र के ग्रेड को परिभाषित कर लिया है, तो हम गणना कर सकते हैं कि उन्होंने अपनी परीक्षा उत्तीर्ण की है या असफल। ऐसा करने के लिए, हम एक if स्टेटमेंट का उपयोग करने जा रहे हैं:
if (grade > 53) { message.replace("X," "passed"); } else { message.replace("X", "failed"); }
हम एक स्टेटमेंट का उपयोग करते हैं और एक अन्य स्टेटमेंट का उपयोग यह मूल्यांकन करने के लिए करते हैं कि कोई छात्र पास हुआ है या फेल। अगर if
कथन सत्य का मूल्यांकन करता है, हमारे "संदेश" स्ट्रिंग में "X" का मान "पास" हो जाता है; अन्यथा, "X" का मान "विफल" हो जाता है।
अब जब हमने यह सूचित करते हुए संदेश लिख दिया है कि कोई छात्र परीक्षा में उत्तीर्ण हुआ है या अनुत्तीर्ण हुआ है, तो हम उस संदेश को JavaScript कंसोल पर प्रिंट कर सकते हैं:
console.log(message);
आइए अपना कोड चलाएं और देखें कि क्या होता है:
Uncaught SyntaxError: missing ) after argument list
हमारा कोड एक सिंटैक्स त्रुटि देता है।
समाधान
जावास्क्रिप्ट हमारे कोड का मूल्यांकन करने में असमर्थ है क्योंकि हमने अपने एक फंक्शन कॉल में गलती की है। हम इसे जानते हैं क्योंकि फ़ंक्शन कॉल में तर्क सूचियां मौजूद हैं।
आइए हमारे फ़ंक्शन कॉल पर एक नज़र डालें:
message.replace("X," "passed"); message.replace("X", "failed");
जबकि दूसरा कथन वाक्य रचना की दृष्टि से सही प्रतीत होता है, पहले वाले में त्रुटि है। हमने अपनी पहली स्ट्रिंग के बजाय अपनी पहली स्ट्रिंग के अंदर अल्पविराम जोड़ा है। पहले replace()
. में “X” स्टेटमेंट पर ध्यान दें बुलाना।
इससे हमारी तर्क सूची में दो मान शामिल हो जाते हैं जो एक के बाद एक दिखाई देते हैं। यह गलत वाक्यविन्यास है। तर्कों को अल्पविराम से अलग किया जाना चाहिए।
इस त्रुटि को ठीक करने के लिए, हम अल्पविराम को "X," स्ट्रिंग के अंदर से स्ट्रिंग के बाहर ले जाने जा रहे हैं:
message.replace("X", "passed");
हमने कॉमा को स्ट्रिंग के बाहर ले जाया है। आइए अपना कोड चलाएं और देखें कि क्या यह काम करता है।
हमारा कोड लौटाता है:
"This student has passed their test."
हमारा कोड सफलतापूर्वक निष्पादित हो गया है!
निष्कर्ष
यदि फ़ंक्शन कॉल का सही मूल्यांकन नहीं किया जा सकता है, तो तर्क सूची के बाद "सिंटैक्स त्रुटि:अनुपलब्ध)" त्रुटि उत्पन्न होती है। इस त्रुटि को ठीक करने के लिए, सुनिश्चित करें कि आपके तर्क सही ढंग से स्वरूपित हैं। दोबारा जांचें कि फ़ंक्शन कॉल में सभी तर्क अल्पविराम द्वारा अलग किए गए हैं।
अब आपके पास एक विशेषज्ञ की तरह इस सिंटैक्स त्रुटि को ठीक करने के लिए आवश्यक ज्ञान है!