𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗦𝗰𝗼𝗽𝗲: 𝗕𝗹𝗼𝗰𝗸, 𝗚𝗹𝗼𝗯𝗮𝗹, ਅਤੇ 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻
Scope ਇਹ ਤੈਅ ਕਰਦਾ ਹੈ ਕਿ ਤੁਸੀਂ ਆਪਣੇ ਕੋਡ ਵਿੱਚ ਵੇਰੀਏਬਲ (variable) ਦੀ ਵਰਤੋਂ ਕਿੱਥੇ ਕਰ ਸਕਦੇ ਹੋ।
Global Scope ਵੇਰੀਏਬਲ ਫੰਕਸ਼ਨਾਂ (functions) ਜਾਂ ਬਲਾਕਾਂ (blocks) ਤੋਂ ਬਾਹਰ ਹੁੰਦੇ ਹਨ। ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਆਪਣੀ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਕਿਤੇ ਵੀ ਐਕਸੈਸ (access) ਕਰ ਸਕਦੇ ਹੋ। ਚੇਤਾਵਨੀ: Global ਵੇਰੀਏਬਲ ਬੱਗਸ (bugs) ਦਾ ਕਾਰਨ ਬਣ ਸਕਦੇ ਹਨ ਕਿਉਂਕਿ ਤੁਹਾਡੇ ਕੋਡ ਦਾ ਕੋਈ ਵੀ ਹਿੱਸਾ ਉਹਨਾਂ ਨੂੰ ਬਦਲ ਸਕਦਾ ਹੈ।
Function Scope ਵੇਰੀਏਬਲ ਇੱਕ ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ ਹੁੰਦੇ ਹਨ। ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਸਿਰਫ਼ ਉਸ ਖਾਸ ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ ਹੀ ਐਕਸੈਸ ਕਰ ਸਕਦੇ ਹੋ।
Block Scope ਇਹ let ਜਾਂ const ਦੀ ਵਰਤੋਂ ਕਰਨ ਵਾਲੇ ਆਧੁਨਿਕ JavaScript 'ਤੇ ਲਾਗੂ ਹੁੰਦਾ ਹੈ। ਵੇਰੀਏਬਲ ਕਰਲੀ ਬਰੇਸ {} ਦੇ ਅੰਦਰ ਹੁੰਦੇ ਹਨ। ਇੱਕ ਬਲਾਕ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ:
- if ਸਟੇਟਮੈਂਟਸ (if statements)
- for ਲੂਪਸ (for loops)
- while ਲੂਪਸ (while loops)
- ਸਟੈਂਡਅਲੋਨ ਬਲਾਕ {} (standalone blocks {})
Scope ਦਾ ਸਾਰ:
- Global: ਹਰ ਜਗ੍ਹਾ ਐਕਸੈਸ ਕਰਨ ਯੋਗ।
- Function: ਸਿਰਫ਼ ਫੰਕਸ਼ਨ ਦੇ ਅੰਦਰ ਹੀ ਐਕਸੈਸ ਕਰਨ ਯੋਗ।
- Block: ਸਿਰਫ਼ ਕਰਲੀ ਬਰੇਸ ਦੇ ਅੰਦਰ ਹੀ ਐਕਸੈਸ ਕਰਨ ਯੋਗ।
- var: Function scope ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ। ਇਹ block scope ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰਦਾ ਹੈ।
- let ਅਤੇ const: Block scope ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। ਬਿਹਤਰ ਕੋਡ ਲਈ ਇਹਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ।
Processes ਅਤੇ Threads ਨੂੰ ਸਮਝਣਾ
ਇੱਕ process ਇੱਕ ਚੱਲ ਰਿਹਾ ਪ੍ਰੋਗਰਾਮ ਹੈ ਜਿਸਦੀ ਆਪਣੀ ਮੈਮੋਰੀ ਹੁੰਦੀ ਹੈ। WhatsApp ਨੂੰ ਇੱਕ process ਵਜੋਂ ਸਮਝੋ।
ਇੱਕ thread ਇੱਕ process ਦਾ ਇੱਕ ਛੋਟਾ ਹਿੱਸਾ ਹੁੰਦਾ ਹੈ। Threads ਇੱਕੋ ਮੈਮੋਰੀ ਸਾਂਝੀ ਕਰਦੇ ਹਨ।
- Threads ਹਲਕੇ (lightweight) ਹੁੰਦੇ ਹਨ।
- ਇਹਨਾਂ ਨੂੰ ਬਣਾਉਣਾ ਤੇਜ਼ ਹੁੰਦਾ ਹੈ।
- ਇਹ ਤੁਹਾਨੂੰ ਇੱਕੋ ਸਮੇਂ ਕਈ ਕੰਮ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ।
WhatsApp ਦੀ ਉਦਾਹਰਣ: ਇੱਕ process (WhatsApp) ਕਈ threads ਚਲਾਉਂਦਾ ਹੈ:
- ਮੈਸੇਜ ਪ੍ਰਾਪਤ ਕਰਨਾ
- ਫੋਟੋਆਂ ਭੇਜਣਾ
- ਵੀਡੀਓ ਚਲਾਉਣਾ
- ਨੋਟੀਫਿਕੇਸ਼ਨ ਦਿਖਾਉਣਾ
Source: https://freeacademy.ai/lessons/global-vs-function-vs-block-scope Source: https://josephcardillo.medium.com/the-difference-between-function-and-block-scope-in-javascript-4296b2322abe