𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝗰𝗼𝗽𝗲: 𝗕𝗹𝗼𝗰𝗸, 𝗚𝗹𝗼𝗯𝗮𝗹, 𝗮𝗻𝗱 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻
Scope ಎಂಬುದು ನಿಮ್ಮ ಕೋಡ್ನಲ್ಲಿ ನೀವು ವೇರಿಯಬಲ್ ಅನ್ನು ಎಲ್ಲಿ ಬಳಸಬಹುದು ಎಂಬುದನ್ನು ನಿರ್ಧರಿಸುತ್ತದೆ.
Global Scope ವೇರಿಯಬಲ್ಗಳು ಫಂಕ್ಷನ್ಗಳು ಅಥವಾ ಬ್ಲಾಕ್ಗಳ ಹೊರಗೆ ಇರುತ್ತವೆ. ನಿಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್ನ ಯಾವುದೇ ಭಾಗದಿಂದ ನೀವು ಅವುಗಳನ್ನು ಬಳಸಬಹುದು. ಎಚ್ಚರಿಕೆ: Global variables ದೋಷಗಳಿಗೆ (bugs) ಕಾರಣವಾಗಬಹುದು, ಏಕೆಂದರೆ ನಿಮ್ಮ ಕೋಡ್ನ ಯಾವುದೇ ಭಾಗವು ಅವುಗಳನ್ನು ಬದಲಾಯಿಸಬಹುದು.
Function Scope ವೇರಿಯಬಲ್ಗಳು ಒಂದು ಫಂಕ್ಷನ್ನ ಒಳಗಿರುತ್ತವೆ. ನೀವು ಆ ನಿರ್ದಿಷ್ಟ ಫಂಕ್ಷನ್ನೊಳಗೆ ಮಾತ್ರ ಅವುಗಳನ್ನು ಬಳಸಬಹುದು.
Block Scope ಇದು let ಅಥವಾ const ಬಳಸುವ ಆಧುನಿಕ JavaScript ಗೆ ಅನ್ವಯಿಸುತ್ತದೆ. ವೇರಿಯಬಲ್ಗಳು ಕರಲಿ ಬ್ರೇಸ್ಗಳ {} ಒಳಗೆ ಇರುತ್ತವೆ. ಒಂದು ಬ್ಲಾಕ್ನಲ್ಲಿ ಇವು ಸೇರಿವೆ:
- if ಸ್ಟೇಟ್ಮೆಂಟ್ಗಳು
- for ಲೂಪ್ಗಳು
- while ಲೂಪ್ಗಳು
- ಸ್ವತಂತ್ರ ಬ್ಲಾಕ್ಗಳು {}
Scope ನ ಸಾರಾಂಶ:
- Global: ಎಲ್ಲೂ ಬಳಸಬಹುದು.
- Function: ಫಂಕ್ಷನ್ನ ಒಳಗಡೆ ಮಾತ್ರ ಬಳಸಬಹುದು.
- Block: ಕರಲಿ ಬ್ರೇಸ್ಗಳ ಒಳಗೆ ಮಾತ್ರ ಬಳಸಬಹುದು.
- var: ಇದು function scope ಅನ್ನು ಬಳಸುತ್ತದೆ. ಇದು block scope ಅನ್ನು ನಿರ್ಲಕ್ಷಿಸುತ್ತದೆ.
- let ಮತ್ತು const: ಇವು block scope ಅನ್ನು ಬಳಸುತ್ತವೆ. ಉತ್ತಮ ಕೋಡ್ಗಾಗಿ ಇವುಗಳನ್ನು ಬಳಸಿ.
Processes ಮತ್ತು Threads ಗಳ ಬಗ್ಗೆ ತಿಳಿಯೋಣ
ಪ್ರೊಸೆಸ್ (Process) ಎಂದರೆ ತನ್ನದೇ ಆದ ಮೆಮೊರಿಯನ್ನು ಹೊಂದಿರುವ ಚಾಲನೆಯಲ್ಲಿರುವ ಪ್ರೋಗ್ರಾಂ ಆಗಿದೆ. WhatsApp ಅನ್ನು ಒಂದು ಪ್ರೊಸೆಸ್ ಎಂದು ಭಾವಿಸಿ.
ಥ್ರೆಡ್ (Thread) ಎಂಬುದು ಪ್ರೊಸೆಸ್ನ ಒಂದು ಸಣ್ಣ ಭಾಗವಾಗಿದೆ. ಥ್ರೆಡ್ಗಳು ಒಂದೇ ಮೆಮೊರಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳುತ್ತವೆ.
- ಥ್ರೆಡ್ಗಳು ಲೈಟ್ವೇಯಿಂಗ್ (lightweight) ಆಗಿರುತ್ತವೆ.
- ಇವುಗಳನ್ನು ರಚಿಸುವುದು ವೇಗವಾಗಿರುತ್ತದೆ.
- ಇವುಗಳು ಏಕಕಾಲದಲ್ಲಿ ಅನೇಕ ಕೆಲಸಗಳನ್ನು ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತವೆ.
WhatsApp ನ ಉದಾಹರಣೆ: ಒಂದು ಪ್ರೊಸೆಸ್ (WhatsApp) ಹಲವಾರು ಥ್ರೆಡ್ಗಳನ್ನು ಚಲಾಯಿಸುತ್ತದೆ:
- ಸಂದೇಶಗಳನ್ನು ಸ್ವೀಕರಿಸುವುದು
- ಫೋಟೋಗಳನ್ನು ಕಳುಹಿಸುವುದು
- ವಿಡಿಯೋಗಳನ್ನು ಪ್ಲೇ ಮಾಡುವುದು
- ನೋಟಿಫಿಕೇಶನ್ಗಳನ್ನು ತೋರಿಸುವುದು
ಮೂಲ: https://freeacademy.ai/lessons/global-vs-function-vs-block-scope ಮೂಲ: https://josephcardillo.medium.com/the-difference-between-function-and-block-scope-in-javascript-4296b2322abe