Primitive and Reference Values – JavaScript में Variable किसी भी अन्य Language की तुलना में ज्यादा Unique होता है। हालांकि हमें JavaScript में किसी Variable के Type को Specify करने की जरूरत नहीं पडती है क्योंकि एक Variable किसी भी समय पर किसी Particular Value का एक नाम मात्र होता है।
चूंकि एक Variable Define करते समय उसके Data Type को Specify करने का कोई तरीका JavaScript में नहीं होता, इसलिए एक Variable की Value व Data Type किसी Script की पूरी Lifetime में कभी भी Change हो सकता है।
हालांकि ये एक Powerful व सुविधाजनक व्यवस्था है लेकिन Problematic भी है, क्योंकि इस प्रकार के Variables के साथ कई प्रकार की Complexities भी Involve है।
Primitive and Reference Values
JavaScript में Variables दो अलग प्रकार के Data को Hold कर सकते हैं: Primitive Values को और Reference Values को।
Primitive Values ऐसा Data होता है जो Computer की Memory के Stack में Store होते हैं। यानी Primitive Values हमेंशा एक Memory Location पर Store होते हैं।
जबकि Reference Values सामान्यत: Object होते हैं और ये Memory के Heap Area में Store होते हैं। यानी Heap Area में Stored Values के Memory Location का केवल Pointer Hold करते हैं न कि Actual Object की Values को।
जब Value को किसी Variable में Assign किया जाता है, तब Interpreter को ये निि”चत करना पडता है कि Variable में जो मान Assign किया गया है वह किसी Primitive Type का मान है या किसी Object का Reference है।
पांच प्रकार के Primitive Data Types Undefined, Null, Boolean, Number व Strings Memory में Fixed Amount का Space लेते हैं इसलिए इस प्रकार की Values को आसानी से Stack में Store किया जा सकता है। ये Variables हमेंशा By Value Access होते हैं क्योंकि ये Variables हमेंशा Actual Values को Hold करते हैं।
यदि हम कोई Reference Value किसी Variable को Assign करते हैं, तो Space को Heap Area में Allocate करना पडता है। क्योंकि References की Values का कोई Fixed Amount Space नहीं होता, इसलिए Reference Values Stack Area में Store नहीं हो सकते।
जबकि एक Memory Address की हमेंशा एक Fixed Size होती है, इसलिए किसी Object के Reference यानी Memory Address को हम आसानी से Stack Area में Store कर सकते हैं।
जब JavaScript Stack Area में Placed किसी Variable को देखता है तो वह उसमें Stored Address के आधार पर उस Object की Values को Heap Area से Recover कर लेता है। Variables का इस प्रकार से Access होना, By Reference Access होना कहलाता है क्योंकि हम Object के Actual Data को Directly Access नहीं कर रहे होते हैं बल्कि एक Reference के माध्यम से Access कर रहे होते हैं। इस प्रक्रिया को हम निम्न चित्र द्वारा समझ सकते हैं:
जैसाकि चित्र में हम देख सकते हैं कि Heap Area में बहुत सारे Objects हो सकते हैं, लेकिन जिस Object का Reference Stack में होता है, उस Object को Stack के Reference से Access किया जा सकता है।
यानी यदि किसी Object का Reference Stack में Stored किसी Variable में होता है, तो हम उस Object को Stack के Reference के माध्यम से आसानी से Access कर सकते हैं।
Stack में Store होने वाले सभी Variables एक Single Memory Slot Occupy करते हैं और एक Sequence में Store होते हैं। जब किसी Stack पर Memory Address होता है, तो वह Memory Address एक Pointer की तरह Heap Area के किसी Object को Refer करता है। Stack की तरह Heap Area, Sequentially Access नहीं होता, क्योंकि हर Object को Memory में अलग Amount के Space की जरूरत हो सकती है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance JavaScript in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Advance JavaScript in Hindi | Page: 669 | Format: PDF