2010-07-16 14 views
8

मैंने यहां और वहां कुछ अभिव्यक्तियों में एक तिहाई अर्धविराम देखा है।
क्या इसका कोई तार्किक प्रभाव है?जावास्क्रिप्ट अभिव्यक्ति में तीन अर्धविराम क्या करता है?

एक स्पष्टीकरण के लिए मैंने जो सबसे नज़दीकी चीज देखी है वह यह है कि यह उस रेखा को अनदेखा करने के लिए डीन एडवर्ड्स कंप्रेसर को बताती है।

;;; var someVar = 'Rebel'; 
+0

कृपया कुछ उदाहरण पोस्ट करें। विभिन्न संदर्भों में इसका अलग-अलग अर्थ हो सकते हैं। – FrustratedWithFormsDesigner

+0

कोड नमूना? मुझे विश्वास नहीं है कि यह सम्मेलन या विशेष वाक्यविन्यास है जिसे मैंने कभी सामना किया है। –

+0

क्या आप एक उदाहरण पोस्ट कर सकते हैं? अगर मुझे गलत नहीं लगता है, तो ';;' '' 'के बराबर है, क्योंकि एक खाली बयान कुछ भी नहीं करता है। मुझे लगता है कि कोई व्यक्ति कोड या कुछ सेक्शन के लिए ';;;' का उपयोग कर रहा था। साथ ही, सुनिश्चित करें कि जो कोड आप पढ़ रहे हैं वह वास्तव में जावास्क्रिप्ट है :-) –

उत्तर

11

डीबग कोड के लिए तीन सेमीकॉलन से शुरू होने वाली रेखाएं हैं: यह इंगित करती है कि उन लाइनों को उत्पादन वातावरण में प्रकट नहीं होना चाहिए। जावास्क्रिप्ट एक कंप्रेसर या कुछ अन्य एल्गोरिदम के माध्यम से चलाया जाता है जो अनुकूलित जेएस फ़ाइल बनाते समय ;;; लाइनों को हटा देता है।

;;; console.log("only run this line when debugging!"); 

जैसा कि ऊपर संकेत दिया, तीन अर्धविराम वास्तव में जावास्क्रिप्ट में कुछ नहीं करता है: यह सिर्फ लगातार तीन खाली बयान समाप्त होता है। एक वास्तविक टिप्पणी

// console.log("only run this line when debugging!"); 

इस्तेमाल किया गया था, तो आप में जाने के लिए और मैन्युअल रूप से जब आप डिबग मोड में प्रवेश करना चाहते थे सभी टिप्पणियों को हटाने के लिए होगा, और उसके बाद में जाकर उन्हें वापस रख जब आप किया गया। अन्य समाधान एक DEBUG चर बना सकते हैं और एक शर्त में सभी डिबग रेखाओं को रैप करने के लिए है:

var DEBUG = true; 
if(DEBUG){ 
    console.log("only run this line when debugging!"); 
} 

लेकिन यह एक छोटे से बोझिल है और वास्तव में अपने जावास्क्रिप्ट दस्तावेज़ बनाने के लिए अवांछित कोड कहते हैं। बेशक आप DEBUG स्थितियों को हटाने के लिए जेएस को कंप्रेसर के माध्यम से चला सकते हैं, लेकिन उस बिंदु पर आप ;;; विधि का उपयोग कर सकते हैं, जो कि आसान है।

इस के वास्तविक जीवन उदाहरण के लिए this question देखें। बीटीडब्ल्यू, मुझे लगता है कि वाक्यविन्यास emacs से आता है।

+0

1k से अधिक कूदने के लिए रास्ता। –

+3

यह कैसे वोट नहीं दिया जाता है? – Joe

+0

ऐसा लगता है कि 'grunt-contrib-uglify' इसे हटा नहीं देगा। – atian25

18

कुछ भी नहीं। बिल्कुल कुछ नहीं।

तीन अर्धविराम, दस अर्धविराम, सौ अर्धविराम, वे सभी एक ही परिणाम के लिए व्याख्या किए जाते हैं: कुछ भी नहीं

+1

मुझे उस व्यक्ति के रूप में जाना जाने दें जिसने आपको 10 के प्रतिनिधि से अधिक प्राप्त किया है। :) – ChaosPandion

+0

@Coos, धन्यवाद दोस्त! –

+1

@Gert - मैं भी नैनो सेकंड में समय मापता हूं। :) – ChaosPandion

1

वे खाली बयान हैं और इसका कोई प्रभाव नहीं है। यह संभव है कि जब तक वाक्यविन्यास द्वारा कोई कथन आवश्यक न हो तो दुभाषिया या कंपाइलर उन्हें हटा देगा।

25

यह लोगों को स्टैक ओवरफ्लो पर प्रश्न पूछता है।

इसके अलावा, यह कुछ भी नहीं करता है।

8

एक खाली वक्तव्य 3 बार समाप्त करता है।

+0

हम्म, मुझे लगता है कि हम केवल दो खाली बयान के बारे में जानते हैं। हम नहीं जानते कि तीन अर्धविराम एक खाली खाली बयान का पालन नहीं कर रहे हैं। – ghoti

+0

ओपीएस कोड के अनुसार उत्तर दें। – Incognito

+0

प्रश्न का मेरा पठन यह था कि पोस्ट किया गया कोड "निकटतम चीज़ [वह] देखा गया था", जरूरी नहीं कि वह "यहां और वहां" देखे गए उदाहरणों में से एक है। ओपी का कोड दिखाए गए चार अर्धविरामों में केवल दो खाली बयान के बारे में स्पष्ट है। – ghoti