2012-02-12 20 views
37

एक दोस्त ने मेरे लिए कुछ कोड लिखा है, और इसमें एक अजीब वाक्यविन्यास त्रुटि वाली एक फ़ाइल थी।मैं जावास्क्रिप्ट में इस लापता अर्धविराम वाक्यविन्यास त्रुटि को कैसे ठीक करूं?

var say = functіon(message) { 
    alert(message); 
    return message; 
}; 

say(say("Goodbye!")); 

जब मैं इस चलाने के लिए, मैं इंटरनेट एक्सप्लोरर कंसोल कि SCRIPT1004: Expected ';' कहते हैं में एक त्रुटि देखें: शिकार के एक बिट के बाद, मैं यह कोड के इस भाग है, जो त्रुटि पुन: पेश करना चाहिए करने के लिए नीचे संकुचित। मुझे कहीं भी एक अर्धविराम नहीं दिख रहा है, और मैं छवि नहीं कर सकता जहां वह मुझे एक रखना चाहता है।

यह अर्धविराम की अपेक्षा करता है और यह वहां अर्धविराम की अपेक्षा क्यों करता है?

+1

'कहें (कहें (" अलविदा! "););'? – tftd

+2

आपको फायरबग में भी एक त्रुटि मिलती है: http: // jsfiddle।नेट/AdHZY/ –

+1

@tftd: अर्धविराम केवल लाइनों के अंत में दिखाई देना चाहिए। इससे एक त्रुटि होगी। –

उत्तर

69

आपकी समस्या यह तथ्य है कि i फ़ंक्शन में यूनिकोड वर्ण i है। यदि आप इसे 'सामान्य' i में बदलते हैं तो इसे केवल काम करना चाहिए।

लेकिन अब मैं सोच रहा हूँ कैसे हैक :) आप एक यूनिकोड चरित्र वहाँ से मिला: पी

unicode error in js

+1

मुझे लगता है कि यह [यह] है (http://en.wikipedia.org/wiki/Dotted_I_ (सिरिलिक)) चरित्र। –

+0

@ रॉकेट यूप यह है। चार '456'। – PeeHaa

+0

जिज्ञासा से, आप यह पता लगाने के बारे में कैसे गए कि वास्तव में क्या गलत था? – Jason

14

आप "समारोह" :)

var say = function(message){ 
    alert(message); 
    return message; 
}; 

say(say("Goodbye!")); 

आप functіon :)

+0

'" functіon "===" फ़ंक्शन "' –

+0

दृश्यमान, यह गलत वर्तनी नहीं है। मुझे संदेह है कि @ रॉकेट बताता है कि पत्रों में से एक भेस में एक और प्रतीक है। –

+3

@ रॉकेट अपने मामले में नहीं। उनके पास एक चरित्र है जो सामान्य के रूप में दिखाई देता है लेकिन यह नहीं है। यहां तक ​​कि मेरा आईडीई भी उसके कोड के साथ लाल हो जाता है :) – tftd

6

डाला है मैं jsfiddle में अपने कोड की नकल की, और क्रोम भी त्रुटि देता गलत वर्तनी है। मैंने "फ़ंक्शन" शब्द हटा दिया, और फिर से टाइप किया "फ़ंक्शन", और यह ठीक काम किया।

वहां कुछ अतिरिक्त चरित्र होना चाहिए।

+0

कोई अन्य स्पष्टीकरण नहीं है जो समझ में आता है। 'Function' को पुनः टाइप करने का डेमो: http://jsfiddle.net/AdHZY/1/ –

6

मैं नकल की और मेरी नोटपैड ++ और में इस तरह अपने कोड नज़र में यह चिपकाया है मेरा नोटपैड ++, अपने फ़ंक्शन कीवर्ड को फिर से टाइप करें, मुझे प्रतिस्थापित किया गया है?

var say = funct?on(message) { 
     alert(message); 
     return message; 
    }; 
    say(say("Goodbye!")); 
+2

आपका मतलब है 'मैं नहीं, सही नहीं? –

+0

हां, मैंने अभी टाइपिंग के दौरान गलती की है और इसके लिए खेद है। धन्यवाद। –

0

मुझे एक और समस्या थी और किसी अन्य के काम को डीबग करते समय एक ही त्रुटि कोड था। इसे ठीक करने के लिए मैंने कोड के अनुभाग को नोटपैड में चिपकाया और फिर उसे विजुअल स्टूडियो पर दोबारा कॉपी किया। त्रुटि चली गई। मुझे लगता है कि जिसने मूल रूप से कोड लिखा है, उसे इसमें कुछ अजीब पात्रों के साथ कहीं से कॉपी करना होगा।

0

वास्तव में, आपने सामान्य "i" के बजाय यूनिकोड "i" डाला। मैं VSCode में साथी त्रुटियों मिलती है: जब मैं बनाकर यह तुलना करने की कोशिश

function compare() { 
 
    return "functіon" === "function" 
 
} 
 
console.log(compare())

हालांकि,:
',' expected. (1, 29)
',' expected. (2, 10)
Declaration or statement expected. (4, 3)
साथ ही आप "functіon" == "function" का मूल्यांकन कोशिश कर सकते हैं खुद "कार्य": यह सच हो जाता है;

function compare2() { 
 
    return "function" == "function" 
 
} 
 
console.log(compare2())

इसके अलावा, मैं अर्धविराम यहाँ शामिल नहीं किया था, जावास्क्रिप्ट में वे आवश्यक नहीं हैं।

संबंधित मुद्दे