जावास्क्रिप्ट त्रुटि (बिना पढ़ा हुआ सिंटैक्स: इनपुट का अप्रत्याशित अंत)


211

मेरे पास कुछ जावास्क्रिप्ट कोड हैं जो फ़ायरफ़ॉक्स में काम करते हैं लेकिन क्रोम या IE में नहीं।

Chrome JS कंसोल में मुझे निम्नलिखित त्रुटि मिलती है:

"बिना पढ़ा हुआ वाक्यविन्यास: इनपुट का अप्रत्याशित अंत"।

मेरे द्वारा उपयोग किया जा रहा जावास्क्रिप्ट कोड है:

<script>
 $(function() {
 $("#mewlyDiagnosed").hover(function() {
    $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
 }, function() {
    $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
 });
</script>

यह कहता है कि त्रुटि अंतिम पंक्ति पर है });


2
मुझे पता है कि क्रोम का V8, DELETEसर्वर पर यदि प्रतिक्रिया 204 केsuccess बजाय 200 थी तो मुझे भी यह त्रुटि मिलेगी। अगर किसी को यह हो रहा है तो बस सिर चढ़कर बोलना है। success - no response
एरिक डी। जॉनसन

जवाबों:


401

एक सेकंड जोड़ें });

जब ठीक से इंडेंट किया जाता है, तो आपका कोड पढ़ता है

$(function() {
    $("#mewlyDiagnosed").hover(function() {
        $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
    }, function() {
        $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
    });
MISSING!

तुमने कभी बाहरी को बंद नहीं किया $(function() {


278
सबक है, हमेशा अपने कोड को इंडेंट करें (और इसे सही तरीके से इंडेंट करें)।
SLAKs

4
अरे यार, काश मेरे VIM ने उस सिंटैक्स त्रुटि को पकड़ लिया होता। मैं विश्वास नहीं कर सकता कि लापरवाह वाक्यविन्यास त्रुटियों के साथ मैं कभी-कभी कितना समय बर्बाद करता हूं।
हेवचैटइस

4
सबक है, हमेशा अच्छे प्लगइन्स के साथ अच्छे संपादक का उपयोग करें, जो कि कोष्ठक युग्मन का पता लगा सकते हैं, इसे उजागर कर सकते हैं या समस्याओं की मरम्मत भी कर सकते हैं।
स्लावोमिर लेनार्ट

1
@HeyWatch यह आपको विम के लिए सिंथेटिक की कोशिश कर सकता है।
नाथन लॉन्ग

1
मैं vim / neovim के लिए neomake का उपयोग करता हूं, हर बार जब मैं जावास्क्रिप्ट फ़ाइल को सहेजता हूं तो jshint चलाने के लिए कॉन्फ़िगर किया जाता है। अगर मेरे पास सिंटैक्स त्रुटियाँ हैं, तो मुझे vim / neovim के गटर में चेतावनी / त्रुटि चिन्ह दिखाई देंगे। जब मैं अपना कर्सर उस लाइन पर डालता हूं, तो vim / neovim कमांड लाइन एक संदेश दिखाती है जिसमें कहा जाता है कि त्रुटि क्या है।
त्रिशूत्र

89

मेरे मामले में, मैं एक खाली JSON पार्स करने की कोशिश कर रहा था:

JSON.parse(stringifiedJSON);

दूसरे शब्दों में, जो हुआ वह निम्नलिखित था:

JSON.parse("");

3
यह, दुर्भाग्य से, $.parseJSONjquery के 1.11.2 शामिल हैं
नासिर अल-वोहाबी

37

http://jsbeautifier.org/ आपके जेएस कोड को इंडेंट करने में मददगार है।

इसके अलावा, Google Chrome के साथ आप "सुंदर प्रिंट" का उपयोग कर सकते हैं। नीचे दिए गए उदाहरण स्क्रीनशॉट को देखें jquery.min.jsस्टैक ओवरफ्लो से मेरे ब्राउज़र से अच्छी तरह से इंडेंट किया गया :)

यहां छवि विवरण दर्ज करें


14

अपने कोड को थोड़ा सा स्वरूपित करना, आपने केवल आंतरिक होवर फ़ंक्शन को बंद कर दिया है। आपने नीचे के बाहरी हिस्सों को बंद नहीं किया है:

$(// missing closing)
 function() { // missing closing }
     $("#mewlyDiagnosed").hover(
        function() {
            $("#mewlyDiagnosed").animate({'height': '237px', 'top': "-75px"});
        }, 
        function() {
            $("#mewlyDiagnosed").animate({'height': '162px', 'top': "0px"});
        });

5

मेरे मामले में, यह मेरे बुकमार्कलेट में एक सरल दोहरे उद्धरण अंक के रूप में समाप्त हो गया , याद रखें कि बुकमार्क पर केवल एकल उद्धरण का उपयोग करें। बस मामले में यह किसी की मदद करता है।


3

मुझे यह त्रुटि तब मिली जब मैं एक जावास्क्रिप्ट बुकमार्क लिखने की कोशिश कर रहा था। मैं यह पता नहीं लगा सका कि यह क्या कारण था। लेकिन अंततः मैंने URL को बुकमार्क करने की कोशिश की, निम्नलिखित वेबसाइट के माध्यम से: http://mrcoles.com/bookmarklet/ और फिर त्रुटि दूर हो गई, इसलिए यह जावास्क्रिप्ट कोड में कुछ वर्णों के साथ एक समस्या रही होगी, जिसे विशेष URL के रूप में व्याख्या किया गया था पात्रों पर नियंत्रण रखें।


2
मेरे जेएस में एक // टिप्पणी थी, जो कि मैंने एक और-लाइनर के रूप में चिपकाने के बाद से मैं जितना चाहता था उससे थोड़ा अधिक टिप्पणी की, पूरे कोड को एक-लाइनर बना दिया और // कोड के बीच में था।
एमफ्लोडिन

टिप्पणियों को हटाने से मेरे लिए भी यह तय हो गया।
एलेक्स

3

यह त्रुटि मुख्य रूप से खाली Jjax कॉल के कारण होती है, जब एक खाली JSON को पार्स करने की कोशिश की जाती है।

इस परीक्षण को हल करने के लिए यदि लौटा डेटा खाली है

$.ajax({
    url: url,
    type: "get",
    dataType: "json",
    success: function (response) {

        if(response.data.length == 0){
            // EMPTY
        }else{
            var obj =jQuery.parseJSON(response.data);
            console.log(obj);
        }
    }
});

3

मेरे मामले में, यह एक लापता के कारण हुई थी (0)में javascript:void(0)एक लंगर में।


0

मुझे यह तब मिला, जब मैंने एक फाइल में एक टिप्पणी की थी जिसे मैं अपने जेएस में जोड़ रहा था, वास्तव में अजीब कारण था कि क्या चल रहा था - हालांकि जब उस VMफ़ाइल पर क्लिक किया जाता है जो पहले से रेंडर होती है और त्रुटि पकड़ती है, तो आपको पता चलेगा कि वास्तव में क्या है त्रुटि थी, मेरे मामले में यह बस कुछ कोड मैं उपयोग कर रहा था असहज था।


0

मुझे यह त्रुटि एक पृष्ठ पर अंतिम स्क्रिप्ट ब्लॉक के अंत की ओर इशारा करते हुए भी मिली, केवल यह महसूस करने के लिए कि त्रुटि वास्तव में एक तत्व के onclick="pagename"बजाय एक क्लिक करने से थी onclick="window.location='pagename'"। यह हमेशा एक लापता ब्रैकेट नहीं है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.