पाठ 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 खाली होने का इंतज़ार करता है।