2013-04-17 8 views
5

"जावास्क्रिप्ट:" के बीच क्या अंतर है और "जावास्क्रिप्ट:" एक एंकर href विशेषता में?"जावास्क्रिप्ट:" के बीच क्या अंतर है और href विशेषता में "जावास्क्रिप्ट:"?

+11

पहले अर्धविराम है, दूसरा नहीं है। – VisioN

+1

समानता के बारे में सोच रहा है? दोनों ** खराब ** – Ejaz

उत्तर

8

खाली जावास्क्रिप्ट फ़ाइल और जावास्क्रिप्ट फ़ाइल के बीच अंतर के रूप में केवल ; के साथ अंतर के समान।

कुछ भी नहीं:

eval(""); 
//undefined 
eval(";"); 
//undefined 

देखें http://www.ecma-international.org/ecma-262/5.1/#sec-7.9.1

करते हैं, के रूप में कार्यक्रम बाएं से दाएं पार्स किया गया है, टोकन के इनपुट धारा के अंत का सामना करना पड़ा है और पार्सर करने में असमर्थ है एक पूर्ण ईसीएमएस्क्रिप्ट प्रोग्राम, के रूप में इनपुट टोकन स्ट्रीम को पार्स करें तो इनपुट स्ट्रीम के अंत में एक अर्धविराम स्वचालित रूप से डाला जाता है।

तो, खाली फ़ाइल एक अमान्य प्रोग्राम होगा, फिर अर्धविराम स्वचालित रूप से डाला जाएगा, और यह केवल एक अर्धविराम के साथ एक कार्यक्रम के बराबर हो जाता है।

6

javascript: छद्म प्रोटोकॉल को इंगित करता है जिसका उपयोग जावास्क्रिप्ट का मूल्यांकन करने के लिए किया जा सकता है। तो इसके बाद एक अर्धविराम एक स्क्रिप्ट के बराबर है जिसमें ; है जो एक खाली अभिव्यक्ति है जो कुछ भी नहीं करता है। javascript: इसके बाद किसी और चीज के बिना एक खाली स्क्रिप्ट है जो कुछ भी नहीं करती है। दोनों मामलों में वापसी मान undefined हैं जो javascript: यूआरएल कुछ और लौटने के बाद महत्वपूर्ण है जिसके परिणामस्वरूप पृष्ठ सामग्री को जो कुछ भी लौटाया जा सकता है, उसके परिणामस्वरूप बदल दिया जाएगा।

हालांकि, आपको javascript: यूआरएल का उपयोग पर नहीं करना चाहिए - वे बहिष्कृत हैं। यदि लिंक का कोई गैर-जेएस संस्करण नहीं है तो onclick और या तो उपयोगी href या # का उपयोग करें। हालांकि उस मामले में घटना को रोकें रोकने के लिए याद रखें।

+0

आपके उत्तर के लिए धन्यवाद, मैं केवल आपको सही करना चाहता हूं कि पेज सामग्री को 'जावास्क्रिप्ट:' रिटर्न के साथ प्रतिस्थापित नहीं किया जा रहा है, 'जावास्क्रिप्ट: 10' या' जावास्क्रिप्ट: 'google.com' , यह कुछ भी नहीं करेगा। – dhblah

+0

इसके अलावा मैं इस बात से सहमत नहीं हूं कि जावास्क्रिप्ट: इसका उपयोग नहीं किया जाना चाहिए, क्योंकि यह हमेशा संभव है कि कोई भी 'झूठी वापसी' को भूल जाए; 'ऑनक्लिक या फ़ंक्शन पर अपवाद फेंक देगा और आपको पता लगाने में एक बुरा और कठिन होगा बग। – dhblah

+1

http://jsfiddle.net/ThiefMaster/MJ4nb/ - यह * अभिव्यक्ति के परिणाम के साथ बदल दिया गया है ...फेंक दिया गया अपवाद एक समस्या नहीं होगी यदि आप 'डीफॉल्ट()' को पर्याप्त रूप से रोकते हैं (मैं आमतौर पर ईवेंट हैंडलर की पहली पंक्ति में इसे बिना शर्त के किया जाता है) – ThiefMaster

1

javascript: बताता है कि किसी अन्य पृष्ठ के लिंक के बजाय एक जावास्क्रिप्ट कथन आ रहा है। ; जावास्क्रिप्ट कथन है। हालांकि, ; कुछ भी निष्पादित नहीं करेगा, इसलिए यह एक नो-ऑप है।

0

javascript:; साथ और अतिरिक्त javascript: है पी:

यह सिर्फ मेरे लिए हुआ है कि यह अभी तक एक अन्य मामले कि JSON prooves है जावास्क्रिप्ट का सबसेट नहीं है:

JSON.parse(""); 
//SyntaxError: Unexpected end of input 
eval(""); 
//undefined 

: खाली मान्य JSON नहीं है अर्धविराम। इसके अलावा, कोई अंतर नहीं है।

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