पाठ 38 / 38
JSON, Regex और Event Loop
डेटा को serialize करना, पैटर्न मिलाना, और क्यों असिंक्रोनस कोड नहीं रुकता।
JSON.stringify और parse
stringify किसी JS मान को JSON string में बदलता है; parse इसका उल्टा करता है।
const user = { name: "Ada", age: 36 };
const json = JSON.stringify(user);
console.log(json); // '{"name":"Ada","age":36}'
console.log(JSON.parse(json)); // back to an objectबेसिक regex
.test() मैच जाँचता है और boolean लौटाता है; .match() असली मैच किया गया टेक्स्ट लौटाता है।
const pattern = /^\d{3}-\d{4}$/;
console.log(pattern.test("555-1234")); // true
console.log("Call 555-1234 now".match(/\d{3}-\d{4}/)[0]); // "555-1234"एक नज़र में event loop
JS एक ही thread पर चलता है, पर असिंक्रोनस काम (timer, fetch) ब्राउज़र/Node को सौंप दिया जाता है, और उसका callback तभी queue में जाता है जब मौजूदा call stack खाली हो — इसलिए असिंक्रोनस कोड नहीं रुकता।
त्वरित जाँच: setTimeout(fn, 0) fn को तुरंत क्यों नहीं चलाता?
- क्योंकि यह fn को मौजूदा call stack खत्म होने के बाद चलाने के लिए queue करता है
- क्योंकि 0ms का मतलब असल में कभी नहीं है
- क्योंकि setTimeout पूरी तरह सिंक्रोनस है
Answer
क्योंकि यह fn को मौजूदा call stack खत्म होने के बाद चलाने के लिए queue करता है — इसका callback 0ms देरी के बावजूद call stack खाली होने का इंतज़ार करता है।