परिचय
JavaScript को <script>... </script> के भीतर रखे गए JavaScript स्टेटमेंट्स का उपयोग करके लागू किया जा सकता है।
उदाहरण: HTML कमेंट के साथ
HTML कमेंट को <script> टैग में जोड़ा जाता है, जो वैकल्पिक है:
<html>
<body>
<script>
<!--
document.write("Hello World!")
//-->
</script>
</body>
</html>
एक वैकल्पिक HTML कमेंट ऊपर जोड़ा गया है जो हमारे JavaScript कोड को घेरता है। हाँ, इसे एक सर्वोत्तम अभ्यास माना जाता था, क्योंकि यह हमारे कोड को उन ब्राउज़रों से बचाने के लिए था जो JavaScript का समर्थन नहीं करते।
कमेंट "//-->" के साथ समाप्त होती है। यहां "//" JavaScript में एक कमेंट को दर्शाता है, इसलिए हम इसे जोड़ते हैं ताकि ब्राउज़र HTML कमेंट के अंत को JavaScript कोड के टुकड़े के रूप में न पढ़े।
आधुनिक दृष्टिकोण: यह अब आवश्यक नहीं है
क्यों अप्रचलित है?
- **कोई भी आधुनिक ब्राउज़र JavaScript का समर्थन नहीं करता ऐसा नहीं है** - यहां तक कि IE6+ भी JavaScript का समर्थन करता है
- **HTML5 पार्सर** -
<script>कंटेंट को सही ढंग से संभालते हैं - **XHTML समाप्त हो गया** - XML पार्सिंग की आवश्यकता नहीं रही
- **बिल्ड टूल्स** - आधुनिक टूलिंग (Webpack, Vite, आदि) कंटेंट को सही ढंग से संभालते हैं
वर्तमान सर्वोत्तम अभ्यास
1. सिंपल स्क्रिप्ट टैग
<script>
// आपका JavaScript कोड यहाँ
console.log('Hello World!');
</script>
2. एक्सटर्नल स्क्रिप्ट (अनुशंसित)
<script src="app.js" defer></script>
3. ES6 मॉड्यूल्स
<script type="module" src="app.js"></script>
ऐतिहासिक संदर्भ
| युग | अभ्यास | कारण |
|---|---|---|
| 1995-2000 (प्रारंभिक JS) | HTML कमेंट रैपर आवश्यक | Netscape 2, IE3 जैसे ब्राउज़र्स JS नहीं समझते थे |
| 2000-2010 (XHTML युग) | CDATA + कमेंट रैपर | XML पार्सर्स < और & को एंटिटीज़ के रूप में पार्स करते थे |
| 2010-2015 (HTML5 संक्रमण) | धीरे-धीरे चरणबद्ध समाप्ति | ब्राउज़र्स में सुधार, HTML5 पार्सिंग मानक |
| 2015+ (आधुनिक) | कोई रैपर नहीं | सभी ब्राउज़र्स सही ढंग से संभालते हैं |
विशेष मामला: टेम्पलेट लिटरल्स में </script>
अगर आपके JavaScript में स्ट्रिंग लिटरल में </script> है, तो यह HTML पार्सर द्वारा स्क्रिप्ट टैग को जल्दी बंद करने का कारण बन सकता है:
<script>
// समस्या: ब्राउज़र यहाँ स्क्रिप्ट समाप्त समझता है
const template = '<div></script></div>';
</script>
समाधान
<script>
// स्ट्रिंग को विभाजित करें
const template = '<div></scr' + 'ipt></div>';
// या टेम्पलेट लिटरल उपयोग करें
const template = `\<div\>\</script\>\</div\>`;
// या बाहरी फाइल में रखें (सर्वोत्तम)
</script>
निष्कर्ष
नहीं, HTML कमेंट्स <script> टैग्स के अंदर अब सर्वोत्तम अभ्यास नहीं हैं। वे अनावश्यक हैं, कोड को अव्यवस्थित करते हैं, और आधुनिक विकास वर्कफ्लोज़ के साथ हस्तक्षेप कर सकते हैं। बस साफ JavaScript लिखें या एक्सटर्नल फाइल्स का उपयोग करें।