ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਵੇਰੀਏਬਲ ਅਤੇ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਕਿਵੇਂ ਅਪਡੇਟ ਕਰਨਾ ਹੈ ਜੋ ਬ੍ਰਾਊਜ਼ਰ ਕੰਸੋਲ ਵਿੱਚ ਨੇਸਟਡ ਹਨ

JavaScript

ਡੂੰਘੇ JavaScript ਫੰਕਸ਼ਨਾਂ ਲਈ ਕੰਸੋਲ ਐਕਸੈਸ ਵਿੱਚ ਮਾਸਟਰਿੰਗ

ਵੱਡੀਆਂ JavaScript ਫਾਈਲਾਂ, ਖਾਸ ਤੌਰ 'ਤੇ ਛੋਟੀਆਂ ਫਾਈਲਾਂ ਨਾਲ ਕੰਮ ਕਰਦੇ ਸਮੇਂ, ਖਾਸ ਫੰਕਸ਼ਨਾਂ ਜਾਂ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਐਕਸੈਸ ਕਰਨਾ ਅਤੇ ਸੋਧਣਾ ਇੱਕ ਚੁਣੌਤੀ ਹੋ ਸਕਦਾ ਹੈ। ਕੁਝ ਮਾਮਲਿਆਂ ਵਿੱਚ, ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਨੇਸਟਡ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਜੋ ਆਸਾਨੀ ਨਾਲ ਦਿਖਾਈ ਜਾਂ ਪਹੁੰਚਯੋਗ ਨਹੀਂ ਹੁੰਦੇ ਹਨ। ਇਹ ਸਥਿਤੀ ਅਕਸਰ ਉਦੋਂ ਪੈਦਾ ਹੁੰਦੀ ਹੈ ਜਦੋਂ ਡੀਬੱਗਿੰਗ ਜਾਂ ਵੈਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਨੂੰ ਵਧੀਆ-ਟਿਊਨਿੰਗ ਕਰਦੇ ਹਨ।

ਅਜਿਹੀ ਇੱਕ ਉਦਾਹਰਣ ਡੂੰਘੇ ਨੇਸਟਡ ਫੰਕਸ਼ਨਾਂ ਨਾਲ ਕੰਮ ਕਰ ਰਹੀ ਹੈ ਜਿਵੇਂ ਕਿ , ਜਾਂ ਵੇਰੀਏਬਲ ਜਿਵੇਂ ਕਿ ਅਤੇ . ਇਹ ਫੰਕਸ਼ਨ ਕੋਡ ਦੀਆਂ ਹਜ਼ਾਰਾਂ ਲਾਈਨਾਂ ਵਿੱਚ ਰਹਿ ਸਕਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਇਹ ਸਮਝਣਾ ਜ਼ਰੂਰੀ ਹੋ ਜਾਂਦਾ ਹੈ ਕਿ ਬ੍ਰਾਊਜ਼ਰ ਕੰਸੋਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਉਹਨਾਂ ਨਾਲ ਕਿਵੇਂ ਨੈਵੀਗੇਟ ਕਰਨਾ ਹੈ ਅਤੇ ਉਹਨਾਂ ਨਾਲ ਕਿਵੇਂ ਗੱਲਬਾਤ ਕਰਨੀ ਹੈ। ਇਹ ਲੇਖ ਇਸ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਵਿਹਾਰਕ ਕਦਮਾਂ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ।

ਅਸੀਂ ਇਹਨਾਂ ਖਾਸ ਫੰਕਸ਼ਨਾਂ ਅਤੇ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਐਕਸੈਸ ਅਤੇ ਸੋਧਣ ਦੇ ਤਰੀਕੇ ਬਾਰੇ ਦੱਸਾਂਗੇ, ਭਾਵੇਂ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਫਾਈਲ ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਕੰਮ ਕਰ ਰਹੇ ਹੋ ਉਸ ਨੂੰ ਛੋਟਾ ਕੀਤਾ ਗਿਆ ਹੈ। ਬ੍ਰਾਊਜ਼ਰ ਕੰਸੋਲ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਕਿਵੇਂ ਵਰਤਣਾ ਹੈ ਇਹ ਸਮਝ ਕੇ, ਤੁਸੀਂ ਅਸਲ-ਸਮੇਂ ਦੀਆਂ ਤਬਦੀਲੀਆਂ ਕਰ ਸਕਦੇ ਹੋ ਜੋ ਤੁਹਾਡੇ ਵਿਕਾਸ ਕਾਰਜ ਪ੍ਰਵਾਹ ਨੂੰ ਸੁਚਾਰੂ ਬਣਾਉਂਦੇ ਹਨ। ਕੁੰਜੀ ਇਹਨਾਂ ਨੇਸਟਡ ਤੱਤਾਂ ਨੂੰ ਲੱਭਣ ਅਤੇ ਬਦਲਣ ਲਈ ਸਹੀ ਪਹੁੰਚ ਦੀ ਪਛਾਣ ਕਰਨ ਵਿੱਚ ਹੈ।

ਹੇਠਾਂ ਦਿੱਤੇ ਭਾਗਾਂ ਵਿੱਚ, ਅਸੀਂ JavaScript ਫੰਕਸ਼ਨਾਂ ਜਾਂ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਲੱਭਣ, ਐਕਸੈਸ ਕਰਨ ਅਤੇ ਸੋਧਣ ਦੇ ਤਰੀਕਿਆਂ ਦੀ ਖੋਜ ਕਰਾਂਗੇ, ਭਾਵੇਂ ਉਹ ਕਿੰਨੇ ਵੀ ਗੁੰਝਲਦਾਰ ਜਾਂ ਨੇਸਟਡ ਕਿਉਂ ਨਾ ਹੋਣ। ਆਉ ਇਸ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਸਰਲ ਬਣਾਉਣ ਲਈ ਸਾਧਨਾਂ ਅਤੇ ਤਕਨੀਕਾਂ ਦੀ ਪੜਚੋਲ ਕਰੀਏ।

ਹੁਕਮ ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ
debugger ਇਹ ਕਮਾਂਡ ਇੱਕ ਖਾਸ ਲਾਈਨ 'ਤੇ JavaScript ਕੋਡ ਦੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਰੋਕਣ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਵੇਰੀਏਬਲਾਂ ਅਤੇ ਫੰਕਸ਼ਨਾਂ ਦੀ ਮੌਜੂਦਾ ਸਥਿਤੀ ਦਾ ਮੁਆਇਨਾ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਨੇਸਟਡ ਫੰਕਸ਼ਨਾਂ ਦੀ ਪਛਾਣ ਕਰਨਾ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਸੋਧਣਾ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ ਜਿਵੇਂ ਕਿ ਅਸਲ-ਸਮੇਂ ਵਿੱਚ.
console.assert() ਕੋਡ ਬਾਰੇ ਧਾਰਨਾਵਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਇਹ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਮਦਦਗਾਰ ਹੈ ਜੇਕਰ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਸੋਧਾਂ ਜਿਵੇਂ ਕਿ ਸਫਲ ਰਹੇ ਹਨ। ਜੇਕਰ ਐਸਰਟ ਦੇ ਅੰਦਰ ਸਮੀਕਰਨ ਗਲਤ ਦਾ ਮੁਲਾਂਕਣ ਕਰਦਾ ਹੈ, ਤਾਂ ਕੰਸੋਲ ਵਿੱਚ ਇੱਕ ਗਲਤੀ ਸੁਨੇਹਾ ਪ੍ਰਦਰਸ਼ਿਤ ਹੁੰਦਾ ਹੈ।
console.error() ਵੈੱਬ ਕੰਸੋਲ ਲਈ ਇੱਕ ਗਲਤੀ ਸੁਨੇਹਾ ਆਉਟਪੁੱਟ ਕਰਦਾ ਹੈ। ਹੱਲ ਵਿੱਚ, ਇਸਦੀ ਵਰਤੋਂ ਡਿਵੈਲਪਰ ਨੂੰ ਸੂਚਿਤ ਕਰਨ ਲਈ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜੇਕਰ ਇੱਕ ਵਿਧੀ ਪਸੰਦ ਹੈ ਜਾਂ ਵਸਤੂ 'ਤੇ ਨਹੀਂ ਲੱਭਿਆ ਜਾ ਸਕਦਾ।
modifyFunction() ਇਹ ਇੱਕ ਕਸਟਮ ਫੰਕਸ਼ਨ ਹੈ ਜੋ ਕਿਸੇ ਵਸਤੂ ਵਿੱਚ ਮੌਜੂਦਾ ਵਿਧੀ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਬਦਲਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਪੂਰੇ ਕੋਡਬੇਸ ਨੂੰ ਦਸਤੀ ਬਦਲੇ ਬਿਨਾਂ ਖਾਸ ਨੇਸਟਡ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਸੋਧਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਗੁੰਝਲਦਾਰ JavaScript ਫਾਈਲਾਂ ਵਿੱਚ ਮੁੱਦਿਆਂ ਨੂੰ ਅਲੱਗ ਕਰਨਾ ਅਤੇ ਹੱਲ ਕਰਨਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ।
typeof ਕਿਸੇ ਵੇਰੀਏਬਲ ਜਾਂ ਫੰਕਸ਼ਨ ਦੀ ਡਾਟਾ ਕਿਸਮ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਸ ਸਮੱਸਿਆ ਦੇ ਸੰਦਰਭ ਵਿੱਚ, ਇਹ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਇੱਕ ਢੰਗ (ਜਿਵੇਂ ) ਮੌਜੂਦ ਹੈ ਅਤੇ ਇਸ ਨੂੰ ਸੋਧਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ 'ਫੰਕਸ਼ਨ' ਕਿਸਮ ਦਾ ਹੈ।
breakpoint ਇਹ ਇੱਕ ਸਿੱਧੀ JavaScript ਕਮਾਂਡ ਦੀ ਬਜਾਏ ਇੱਕ ਬ੍ਰਾਊਜ਼ਰ DevTools ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ। ਕਿਸੇ ਖਾਸ ਲਾਈਨ 'ਤੇ ਬ੍ਰੇਕਪੁਆਇੰਟ ਰੱਖ ਕੇ, ਜਿਵੇਂ ਕਿ ਕਿੱਥੇ ਸਥਿਤ ਹੈ, ਡਿਵੈਲਪਰ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਰੋਕ ਸਕਦੇ ਹਨ ਅਤੇ ਉਸ ਸਮੇਂ ਕੋਡ ਦੇ ਵਿਵਹਾਰ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹਨ।
console.log() ਇਹ ਕਮਾਂਡ ਕੰਸੋਲ ਉੱਤੇ ਆਉਟਪੁੱਟ ਨੂੰ ਪ੍ਰਿੰਟ ਕਰਦੀ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਇੱਥੇ ਤਰੀਕਿਆਂ ਵਿੱਚ ਸੋਧਾਂ ਨੂੰ ਟਰੈਕ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਾਂ ਬ੍ਰਾਊਜ਼ਰ ਕੰਸੋਲ ਵਿੱਚ ਰੀਅਲ-ਟਾਈਮ ਬਦਲਾਅ ਕਰਨ ਤੋਂ ਬਾਅਦ।
set breakpoints ਬ੍ਰੇਕਪੁਆਇੰਟਸ ਖਾਸ ਮਾਰਕਰ ਹਨ ਜੋ ਬ੍ਰਾਊਜ਼ਰ DevTools ਵਿੱਚ ਪਰਿਭਾਸ਼ਿਤ ਪੁਆਇੰਟਾਂ 'ਤੇ ਕੋਡ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਰੋਕਣ ਲਈ ਵਰਤੇ ਜਾਂਦੇ ਹਨ। ਇਹ ਡਿਵੈਲਪਰ ਨੂੰ ਰੀਅਲ ਟਾਈਮ ਵਿੱਚ ਵੇਰੀਏਬਲ, ਫੰਕਸ਼ਨਾਂ ਅਤੇ ਹੋਰ ਸਥਿਤੀਆਂ ਦਾ ਮੁਆਇਨਾ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜੋ ਕਿ ਨੇਸਟਡ ਫੰਕਸ਼ਨ ਕਿਵੇਂ ਵਿਵਹਾਰ ਕਰ ਰਹੇ ਹਨ ਇਹ ਸਮਝਣ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।
object.methodName = function() {...} ਇਹ ਸੰਟੈਕਸ ਕਿਸੇ ਵਸਤੂ ਵਿੱਚ ਮੌਜੂਦਾ ਫੰਕਸ਼ਨ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਅਸੀਂ ਬਦਲਿਆ ਇੱਕ ਨਵੇਂ ਫੰਕਸ਼ਨ ਦੇ ਨਾਲ, ਸਾਨੂੰ ਅਸਲ ਫਾਈਲ ਨੂੰ ਸਿੱਧਾ ਬਦਲੇ ਬਿਨਾਂ ਇਸਦੇ ਵਿਵਹਾਰ ਨੂੰ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।

ਨੇਸਟਡ JavaScript ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਐਕਸੈਸ ਕਰਨ ਅਤੇ ਸੋਧਣ ਵਿੱਚ ਡੂੰਘੀ ਡੁਬਕੀ

ਪਿਛਲੇ ਭਾਗ ਵਿੱਚ ਪ੍ਰਦਾਨ ਕੀਤੀਆਂ ਗਈਆਂ ਸਕ੍ਰਿਪਟਾਂ ਦਾ ਉਦੇਸ਼ ਵੱਡੀਆਂ, ਅਕਸਰ ਛੋਟੀਆਂ, JavaScript ਫਾਈਲਾਂ ਵਿੱਚ ਡੂੰਘੇ ਨੇਸਟਡ ਫੰਕਸ਼ਨਾਂ ਅਤੇ ਵੇਰੀਏਬਲਾਂ ਨੂੰ ਐਕਸੈਸ ਕਰਨ ਅਤੇ ਸੋਧਣ ਦੀ ਚੁਣੌਤੀ ਨੂੰ ਹੱਲ ਕਰਨਾ ਹੈ। ਡਿਵੈਲਪਰਾਂ ਦਾ ਸਾਹਮਣਾ ਕਰਨ ਵਾਲੇ ਮੁੱਖ ਮੁੱਦਿਆਂ ਵਿੱਚੋਂ ਇੱਕ ਫੰਕਸ਼ਨਾਂ ਨਾਲ ਗੱਲਬਾਤ ਕਰਨਾ ਹੈ ਅਤੇ ਬ੍ਰਾਊਜ਼ਰ ਕੰਸੋਲ ਰਾਹੀਂ। ਬ੍ਰਾਊਜ਼ਰ ਦੇ ਡਿਵੈਲਪਰ ਟੂਲਸ (DevTools) ਅਤੇ JavaScript-ਵਿਸ਼ੇਸ਼ ਕਮਾਂਡਾਂ ਵਰਗੇ ਟੂਲਸ ਦਾ ਲਾਭ ਲੈ ਕੇ, ਅਸੀਂ ਇਹਨਾਂ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਐਕਸੈਸ ਕਰ ਸਕਦੇ ਹਾਂ ਅਤੇ ਸਰੋਤ ਫਾਈਲ ਨੂੰ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਬਦਲੇ ਬਿਨਾਂ ਉਹਨਾਂ ਨੂੰ ਸੋਧ ਸਕਦੇ ਹਾਂ।

ਪਹਿਲੀ ਉਦਾਹਰਨ ਵਿੱਚ, ਅਸੀਂ ਬ੍ਰਾਊਜ਼ਰ ਦੇ ਕੰਸੋਲ ਦੀ ਵਰਤੋਂ ਹੱਥੀਂ ਪਹੁੰਚ ਕਰਨ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਲਈ ਕੀਤੀ . ਸਕ੍ਰਿਪਟ ਫੰਕਸ਼ਨ ਦੇ ਵਿਹਾਰ ਨੂੰ ਇਸ ਨੂੰ ਇੱਕ ਨਵਾਂ ਲਾਗੂ ਕਰਨ ਦੁਆਰਾ ਸੰਸ਼ੋਧਿਤ ਕਰਦੀ ਹੈ। ਇਹ ਵਿਧੀ ਖਾਸ ਤੌਰ 'ਤੇ ਲਾਭਦਾਇਕ ਹੈ ਜਦੋਂ ਮਿਨੀਫਾਈਡ ਕੋਡ ਨਾਲ ਕੰਮ ਕਰਨਾ, ਜਿੱਥੇ ਹਜ਼ਾਰਾਂ ਲਾਈਨਾਂ ਰਾਹੀਂ ਨੈਵੀਗੇਟ ਕਰਨਾ ਮੁਸ਼ਕਲ ਹੁੰਦਾ ਹੈ। ਕੰਸੋਲ ਵਿੱਚ ਸਿੱਧੇ ਇੱਕ ਫੰਕਸ਼ਨ ਨੂੰ ਬਦਲ ਕੇ, ਡਿਵੈਲਪਰ ਰੀਅਲ-ਟਾਈਮ ਵਿੱਚ ਸੋਧਾਂ ਦੀ ਜਾਂਚ ਕਰ ਸਕਦੇ ਹਨ, ਡੀਬੱਗਿੰਗ ਅਤੇ ਟੈਸਟਿੰਗ ਨੂੰ ਬਹੁਤ ਤੇਜ਼ ਅਤੇ ਵਧੇਰੇ ਕੁਸ਼ਲ ਬਣਾ ਸਕਦੇ ਹਨ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਮਦਦਗਾਰ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਇਹ ਦੇਖਣਾ ਚਾਹੁੰਦੇ ਹੋ ਕਿ ਸਿਸਟਮ ਵੱਖ-ਵੱਖ ਵਾਪਸੀ ਮੁੱਲਾਂ 'ਤੇ ਕਿਵੇਂ ਪ੍ਰਤੀਕਿਰਿਆ ਕਰਦਾ ਹੈ।

ਦੂਜੀ ਪਹੁੰਚ ਬ੍ਰੇਕਪੁਆਇੰਟ ਅਤੇ ਸਰੋਤ ਮੈਪਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ। ਇੱਕ ਖਾਸ ਲਾਈਨ 'ਤੇ ਇੱਕ ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈੱਟ ਕਰਕੇ, ਜਿਵੇਂ ਕਿ ਲਾਈਨ 14900 ਜਿੱਥੇ ਪਰਿਭਾਸ਼ਿਤ ਕੀਤਾ ਗਿਆ ਹੈ, ਸਕ੍ਰਿਪਟ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਰੋਕਿਆ ਗਿਆ ਹੈ। ਇਹ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਪ੍ਰੋਗਰਾਮ ਦੀ ਸਥਿਤੀ ਦੀ ਜਾਂਚ ਕਰਨ, ਵੇਰੀਏਬਲਾਂ ਦਾ ਮੁਆਇਨਾ ਕਰਨ, ਅਤੇ ਜੇ ਲੋੜ ਹੋਵੇ ਤਾਂ ਉਹਨਾਂ ਨੂੰ ਸੋਧਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ। ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈੱਟ ਕਰਨਾ ਵੱਡੇ ਪੈਮਾਨੇ ਦੀਆਂ JavaScript ਫਾਈਲਾਂ ਲਈ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਤਕਨੀਕ ਹੈ ਕਿਉਂਕਿ ਇਹ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਫੰਕਸ਼ਨ ਵਿੱਚ "ਕਦਮ" ਕਰਨ ਅਤੇ ਰੀਅਲ-ਟਾਈਮ ਵਿੱਚ ਇਸਦੇ ਵਿਵਹਾਰ ਨੂੰ ਦੇਖਣ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ। ਬ੍ਰੇਕਪੁਆਇੰਟ ਕੋਡ ਦੇ ਪ੍ਰਵਾਹ ਦਾ ਇੱਕ ਡੂੰਘਾਈ ਨਾਲ ਦ੍ਰਿਸ਼ ਪੇਸ਼ ਕਰਦੇ ਹਨ ਅਤੇ ਸੰਭਾਵੀ ਬੱਗਾਂ ਦੀ ਪਛਾਣ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰ ਸਕਦੇ ਹਨ ਜੋ ਸ਼ਾਇਦ ਤੁਰੰਤ ਸਪੱਸ਼ਟ ਨਾ ਹੋਣ।

ਤੀਜੀ ਉਦਾਹਰਣ ਇੱਕ ਸਹਾਇਕ ਫੰਕਸ਼ਨ ਬਣਾ ਕੇ ਇੱਕ ਹੋਰ ਮਾਡਯੂਲਰ ਪਹੁੰਚ ਪੇਸ਼ ਕਰਦੀ ਹੈ , ਜੋ ਕਿਸੇ ਵਸਤੂ ਵਿੱਚ ਮੌਜੂਦਾ ਤਰੀਕਿਆਂ ਨੂੰ ਗਤੀਸ਼ੀਲ ਰੂਪ ਵਿੱਚ ਬਦਲਦਾ ਹੈ। ਇਹ ਫੰਕਸ਼ਨ ਤਿੰਨ ਆਰਗੂਮੈਂਟਾਂ ਵਿੱਚ ਲੈਂਦਾ ਹੈ: ਆਬਜੈਕਟ, ਵਿਧੀ ਦਾ ਨਾਮ, ਅਤੇ ਨਵਾਂ ਲਾਗੂ ਕਰਨਾ। ਇਹ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਆਬਜੈਕਟ ਦੇ ਅੰਦਰ ਕਿਸੇ ਵੀ ਵਿਧੀ ਨੂੰ ਪ੍ਰੋਗਰਾਮੇਟਿਕ ਰੂਪ ਵਿੱਚ ਸੋਧਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ। ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਪ੍ਰਮਾਣਿਕਤਾ ਵੀ ਸ਼ਾਮਲ ਹੈ ਕਿ ਇਸ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਫੰਕਸ਼ਨ ਮੌਜੂਦ ਹੈ। ਇਹ ਪਹੁੰਚ ਨਾ ਸਿਰਫ਼ ਮੁੜ ਵਰਤੋਂ ਯੋਗ ਹੈ, ਸਗੋਂ ਮਾਪਣਯੋਗ ਵੀ ਹੈ, ਕਿਉਂਕਿ ਇਸਨੂੰ ਵੱਖ-ਵੱਖ ਤਰੀਕਿਆਂ ਵਿੱਚ ਲਾਗੂ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ, ਇਸ ਨੂੰ ਉਹਨਾਂ ਪ੍ਰੋਜੈਕਟਾਂ ਲਈ ਇੱਕ ਬਹੁਮੁਖੀ ਹੱਲ ਬਣਾਉਂਦਾ ਹੈ ਜਿਹਨਾਂ ਨੂੰ ਨਿਰੰਤਰ ਅੱਪਡੇਟ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ ਜਾਂ ਜਟਿਲ ਕਾਰਜਸ਼ੀਲਤਾ ਹੁੰਦੀ ਹੈ।

ਇੱਕ ਵੱਡੀ ਮਿਨੀਫਾਈਡ ਫਾਈਲ ਵਿੱਚ JavaScript ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਐਕਸੈਸ ਕਰਨਾ ਅਤੇ ਸੋਧਣਾ

ਫਰੰਟ-ਐਂਡ ਬਰਾਊਜ਼ਰ ਕੰਸੋਲ (ਜਾਵਾ ਸਕ੍ਰਿਪਟ) ਦੀ ਵਰਤੋਂ ਕਰਨਾ

// Solution 1: Directly access nested functions in the browser console.
// Step 1: Load the unminified version of the JavaScript file in the console.
// Use the browser's DevTools to inspect the loaded script.
// Step 2: Find the object containing the desired functions.
// Assuming 'b' is a global or accessible object:
let currentTime = b.getCurrentTime();
console.log("Current Time: ", currentTime);
// To modify the result of getCurrentTime():
b.getCurrentTime = function() { return 500; }; // Modify behavior
console.log("Modified Time: ", b.getCurrentTime());
// Similarly, for handleSeek or getDuration:
b.getDuration = function() { return 1200; };

ਬ੍ਰੇਕਪੁਆਇੰਟਸ ਅਤੇ ਸੋਰਸ ਮੈਪਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਨੇਸਟਡ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਸੋਧਣਾ

ਡੀਬੱਗਿੰਗ ਲਈ ਬ੍ਰਾਊਜ਼ਰ DevTools ਦੀ ਵਰਤੋਂ ਕਰਨਾ

// Solution 2: Use browser breakpoints and source mapping for better control.
// Step 1: In the browser DevTools, go to the "Sources" tab.
// Step 2: Locate the JavaScript file and set breakpoints around the function.
// Example: Setting a breakpoint at line 14900 where getDuration() is located.
debugger; // Inserted in the function to pause execution
b.getDuration = function() { return 1500; }; // Change function output
// Step 3: Resume script execution and monitor changes in the console.
console.log(b.getDuration()); // Output: 1500
// Step 4: Test modifications in real-time for precise debugging.

ਫੰਕਸ਼ਨ ਸੋਧਾਂ ਨੂੰ ਮਾਡਿਊਲਰਾਈਜ਼ ਕਰਨਾ ਅਤੇ ਟੈਸਟ ਕਰਨਾ

ਬਿਹਤਰ ਮੁੜ ਵਰਤੋਂਯੋਗਤਾ ਲਈ JavaScript ਮੋਡੀਊਲ ਦੀ ਵਰਤੋਂ ਕਰਨਾ

// Solution 3: Refactor the code for modularity and reusability.
// Create a function to modify nested functions and add unit tests.
function modifyFunction(obj, methodName, newFunction) {
  if (typeof obj[methodName] === 'function') {
    obj[methodName] = newFunction;
    console.log(`${methodName} modified successfully`);
  } else {
    console.error(`Method ${methodName} not found on object`);
  }
}
// Example usage:
modifyFunction(b, 'getCurrentTime', function() { return 700; });
// Unit Test:
console.assert(b.getCurrentTime() === 700, 'Test failed: getCurrentTime did not return 700');

ਗੁੰਝਲਦਾਰ ਫਾਈਲਾਂ ਲਈ JavaScript ਡੀਬੱਗਿੰਗ ਤਕਨੀਕਾਂ ਦੀ ਪੜਚੋਲ ਕਰਨਾ

ਵੱਡੀਆਂ JavaScript ਫਾਈਲਾਂ, ਖਾਸ ਤੌਰ 'ਤੇ ਛੋਟੀਆਂ ਫਾਈਲਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਦਾ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਪਹਿਲੂ, ਕੋਡ ਨੂੰ ਕੁਸ਼ਲਤਾ ਨਾਲ ਡੀਬੱਗ ਕਰਨ ਦੀ ਯੋਗਤਾ ਹੈ। ਬ੍ਰਾਊਜ਼ਰ ਦੇ DevTools ਕਈ ਉੱਨਤ ਤਕਨੀਕਾਂ ਪ੍ਰਦਾਨ ਕਰਦੇ ਹਨ, ਜਿਵੇਂ ਕਿ ਕੰਡੀਸ਼ਨਲ ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈੱਟ ਕਰਨਾ, ਜੋ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਖਾਸ ਸ਼ਰਤਾਂ ਦੇ ਆਧਾਰ 'ਤੇ ਕੋਡ ਦੇ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਨੂੰ ਰੋਕਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਲਾਭਦਾਇਕ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਤੁਸੀਂ ਡੂੰਘੇ ਨੇਸਟਡ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਐਕਸੈਸ ਕਰਨ ਜਾਂ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਹੇ ਹੋ ਜਾਂ ਵੱਡੀਆਂ ਫਾਈਲਾਂ ਵਿੱਚ, ਇਹ ਪਤਾ ਲਗਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਕਿ ਕੁਝ ਵਿਧੀਆਂ ਕਦੋਂ ਅਤੇ ਕਿਉਂ ਲਾਗੂ ਕੀਤੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।

ਇੱਕ ਹੋਰ ਉਪਯੋਗੀ ਵਿਸ਼ੇਸ਼ਤਾ ਹੈ DevTools ਦੀ "ਵਾਚ" ਕਾਰਜਕੁਸ਼ਲਤਾ। ਇਹ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਖਾਸ ਵੇਰੀਏਬਲਾਂ ਜਾਂ ਫੰਕਸ਼ਨਾਂ ਵਿੱਚ ਬਦਲਾਅ ਦੇਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ ਸਕ੍ਰਿਪਟ ਚੱਲਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਤੁਸੀਂ ਫੰਕਸ਼ਨ ਨੂੰ "ਦੇਖ" ਸਕਦੇ ਹੋ ਅਤੇ ਹਰ ਵਾਰ ਜਦੋਂ ਇਸਦਾ ਮੁੱਲ ਜਾਂ ਵਿਵਹਾਰ ਅਪਡੇਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਤਾਂ ਸੂਚਿਤ ਕਰੋ। ਇਹ ਕੰਸੋਲ ਲੌਗਸ ਦੇ ਆਉਟਪੁੱਟ ਦੀ ਦਸਤੀ ਜਾਂਚ ਕਰਨ ਦੇ ਮੁਕਾਬਲੇ ਬਹੁਤ ਸਾਰਾ ਸਮਾਂ ਬਚਾਉਂਦਾ ਹੈ ਅਤੇ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਡੀਬੱਗਿੰਗ ਦੌਰਾਨ ਕੋਈ ਵੀ ਤਬਦੀਲੀ ਅਣਦੇਖੀ ਨਾ ਹੋਵੇ।

ਸਰੋਤ ਨਕਸ਼ੇ ਡੀਬੱਗਿੰਗ ਵਿੱਚ ਇੱਕ ਹੋਰ ਸ਼ਕਤੀਸ਼ਾਲੀ ਸਾਧਨ ਹਨ। ਮਿੰਨੀਫਾਈਡ ਫਾਈਲਾਂ ਨਾਲ ਨਜਿੱਠਣ ਵੇਲੇ, ਇਹ ਪਤਾ ਲਗਾਉਣਾ ਲਗਭਗ ਅਸੰਭਵ ਹੋ ਜਾਂਦਾ ਹੈ ਕਿ ਕੁਝ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਪਰਿਭਾਸ਼ਿਤ ਜਾਂ ਵਰਤਿਆ ਗਿਆ ਹੈ. ਸਰੋਤ ਨਕਸ਼ੇ ਛੋਟੇ ਕੋਡ ਨੂੰ ਇਸਦੇ ਅਸਲ ਅਣਮਿੰਨੀਫਾਈਡ ਸੰਸਕਰਣ ਵਿੱਚ ਮੈਪ ਕਰਕੇ ਇਸ ਪਾੜੇ ਨੂੰ ਪੂਰਾ ਕਰਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਤੁਸੀਂ ਸਿੱਧੇ ਪੜ੍ਹਨਯੋਗ ਕੋਡ ਨਾਲ ਕੰਮ ਕਰ ਸਕਦੇ ਹੋ। ਇਹ ਵੱਡੀਆਂ ਫਾਈਲਾਂ ਦੇ ਅੰਦਰ ਲੁਕੇ ਹੋਏ ਗੁੰਝਲਦਾਰ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਸੋਧਣ ਜਾਂ ਐਕਸੈਸ ਕਰਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ ਅਤੇ ਡੀਬੱਗਿੰਗ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਡਿਵੈਲਪਰਾਂ ਲਈ ਸੁਚਾਰੂ ਅਤੇ ਵਧੇਰੇ ਅਨੁਭਵੀ ਬਣਾਉਂਦਾ ਹੈ।

  1. ਮੈਂ ਇੱਕ ਵੱਡੀ JavaScript ਫਾਈਲ ਵਿੱਚ ਡੂੰਘੇ ਨੇਸਟਡ ਫੰਕਸ਼ਨ ਤੱਕ ਕਿਵੇਂ ਪਹੁੰਚ ਕਰ ਸਕਦਾ ਹਾਂ?
  2. ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ ਫਾਈਲ ਨੂੰ ਲੱਭਣ ਲਈ, ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈਟ ਕਰੋ, ਅਤੇ ਫੰਕਸ਼ਨ ਨੂੰ ਲੱਭਣ ਲਈ ਆਬਜੈਕਟ ਲੜੀ ਦੀ ਪੜਚੋਲ ਕਰੋ ਜਿਸਦੀ ਤੁਸੀਂ ਭਾਲ ਕਰ ਰਹੇ ਹੋ।
  3. ਮੈਂ ਬ੍ਰਾਊਜ਼ਰ ਕੰਸੋਲ ਵਿੱਚ ਸਿੱਧੇ ਫੰਕਸ਼ਨ ਨੂੰ ਕਿਵੇਂ ਸੋਧਾਂ?
  4. ਤੁਸੀਂ ਵਰਤਦੇ ਹੋਏ ਇੱਕ ਮੌਜੂਦਾ ਵਿਧੀ ਨੂੰ ਇੱਕ ਨਵਾਂ ਫੰਕਸ਼ਨ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੇ ਹੋ ਇਸ ਦੇ ਵਿਵਹਾਰ ਨੂੰ ਓਵਰਰਾਈਡ ਕਰਨ ਲਈ.
  5. ਇੱਕ ਸਰੋਤ ਨਕਸ਼ਾ ਕੀ ਹੈ, ਅਤੇ ਇਹ ਕਿਵੇਂ ਮਦਦ ਕਰ ਸਕਦਾ ਹੈ?
  6. ਇੱਕ ਸਰੋਤ ਨਕਸ਼ਾ ਮਿੰਨੀਫਾਈਡ ਕੋਡ ਨੂੰ ਇਸਦੇ ਮੂਲ ਸਰੋਤ ਨਾਲ ਜੋੜਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਇਸਨੂੰ ਡੀਬੱਗ ਅਤੇ ਸੋਧਣਾ ਆਸਾਨ ਹੋ ਜਾਂਦਾ ਹੈ .
  7. ਜੇਕਰ ਕੋਈ ਫੰਕਸ਼ਨ ਸੋਧ ਕੰਮ ਕਰਦੀ ਹੈ ਤਾਂ ਮੈਂ ਕਿਵੇਂ ਜਾਂਚ ਕਰ ਸਕਦਾ ਹਾਂ?
  8. ਤੁਸੀਂ ਵਰਤ ਸਕਦੇ ਹੋ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਸੰਸ਼ੋਧਿਤ ਫੰਕਸ਼ਨ ਲਾਗੂ ਹੋਣ 'ਤੇ ਅਨੁਮਾਨਿਤ ਮੁੱਲ ਵਾਪਸ ਕਰਦਾ ਹੈ।
  9. DevTools ਵਿੱਚ "ਵਾਚ" ਵਿਸ਼ੇਸ਼ਤਾ ਕੀ ਹੈ?
  10. ਦ ਵਿਸ਼ੇਸ਼ਤਾ ਤੁਹਾਨੂੰ ਖਾਸ ਵੇਰੀਏਬਲਾਂ ਜਾਂ ਫੰਕਸ਼ਨਾਂ ਦੀ ਨਿਗਰਾਨੀ ਕਰਨ ਅਤੇ ਇਹ ਦੇਖਣ ਦੀ ਆਗਿਆ ਦਿੰਦੀ ਹੈ ਕਿ ਸਕ੍ਰਿਪਟ ਐਗਜ਼ੀਕਿਊਸ਼ਨ ਦੌਰਾਨ ਉਹ ਕਦੋਂ ਬਦਲਦੇ ਹਨ।

ਵੱਡੀਆਂ JavaScript ਫਾਈਲਾਂ ਵਿੱਚ ਡੂੰਘੇ ਨੇਸਟਡ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਐਕਸੈਸ ਕਰਨਾ ਅਤੇ ਸੰਸ਼ੋਧਿਤ ਕਰਨਾ ਔਖਾ ਲੱਗ ਸਕਦਾ ਹੈ, ਪਰ ਬ੍ਰੇਕਪੁਆਇੰਟ ਵਰਗੀਆਂ ਬ੍ਰਾਊਜ਼ਰ DevTools ਅਤੇ ਤਕਨੀਕਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਇਸ ਕੰਮ ਨੂੰ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ। ਇਹ ਰੀਅਲ-ਟਾਈਮ ਵਿੱਚ ਤਬਦੀਲੀਆਂ ਦੀ ਨਿਗਰਾਨੀ ਕਰਨ ਅਤੇ ਬਿਹਤਰ ਡੀਬੱਗਿੰਗ ਲਈ ਕੋਡ ਢਾਂਚੇ ਦੀ ਪੜਚੋਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।

ਗਤੀਸ਼ੀਲ ਫੰਕਸ਼ਨ ਸੋਧ, ਸਰੋਤ ਨਕਸ਼ੇ, ਅਤੇ "ਵਾਚ" ਵਿਸ਼ੇਸ਼ਤਾ ਦਾ ਲਾਭ ਲੈ ਕੇ, ਡਿਵੈਲਪਰ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਜਲਦੀ ਪਛਾਣ, ਪਹੁੰਚ ਅਤੇ ਬਦਲ ਸਕਦੇ ਹਨ ਜਿਵੇਂ ਕਿ ਜਾਂ . ਇਹ ਨਾ ਸਿਰਫ਼ ਸਮਾਂ ਬਚਾਉਂਦਾ ਹੈ ਬਲਕਿ ਡੀਬੱਗਿੰਗ ਕੁਸ਼ਲਤਾ ਨੂੰ ਵੀ ਵਧਾਉਂਦਾ ਹੈ।

  1. ਇਸ ਲੇਖ ਨੂੰ JavaScript ਦਸਤਾਵੇਜ਼ਾਂ ਦੁਆਰਾ ਸੂਚਿਤ ਕੀਤਾ ਗਿਆ ਸੀ MDN ਵੈੱਬ ਡੌਕਸ , JavaScript ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਐਕਸੈਸ ਕਰਨ ਅਤੇ ਸੰਸ਼ੋਧਿਤ ਕਰਨ ਲਈ ਨਵੀਨਤਮ ਵਧੀਆ ਅਭਿਆਸਾਂ ਨੂੰ ਕਵਰ ਕਰਦਾ ਹੈ।
  2. ਵੱਡੀਆਂ JavaScript ਫਾਈਲਾਂ ਨੂੰ ਡੀਬੱਗ ਕਰਨ ਅਤੇ ਬ੍ਰੇਕਪੁਆਇੰਟ ਸੈੱਟ ਕਰਨ ਬਾਰੇ ਵਧੀਕ ਸੂਝ-ਬੂਝਾਂ ਤੋਂ ਖਿੱਚੀਆਂ ਗਈਆਂ ਸਨ Google Chrome DevTools ਗਾਈਡ
  3. ਹਵਾਲਾ ਦਿੱਤੀ ਗਈ JavaScript ਫਾਈਲ ਦਾ ਅਣਮਿੱਥੇ ਸੰਸਕਰਣ ਡਿਵੈਲਪਰ ਟੂਲਸ ਦੁਆਰਾ ਲੱਭਿਆ ਜਾ ਸਕਦਾ ਹੈ, ਅਸਲ-ਸੰਸਾਰ ਐਪਲੀਕੇਸ਼ਨਾਂ 'ਤੇ ਇੱਕ ਡੂੰਘਾਈ ਨਾਲ ਨਜ਼ਰ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ।