# ਫੰਕਸ਼ਨ ਨਾਲ ਮਜ਼ਾ ## ਹਦਾਇਤਾਂ ਇਸ ਅਸਾਈਨਮੈਂਟ ਵਿੱਚ, ਤੁਸੀਂ ਜਾਵਾਸਕ੍ਰਿਪਟ ਫੰਕਸ਼ਨ, ਪੈਰਾਮੀਟਰ, ਡਿਫਾਲਟ ਵੈਲਿਊਜ਼ ਅਤੇ ਰਿਟਰਨ ਸਟੇਟਮੈਂਟ ਦੇ ਸੰਕਲਪਾਂ ਨੂੰ ਮਜ਼ਬੂਤ ਕਰਨ ਲਈ ਵੱਖ-ਵੱਖ ਕਿਸਮ ਦੇ ਫੰਕਸ਼ਨ ਬਣਾਉਣ ਦੀ ਪ੍ਰੈਕਟਿਸ ਕਰੋਗੇ। ਇੱਕ ਜਾਵਾਸਕ੍ਰਿਪਟ ਫਾਈਲ `functions-practice.js` ਬਣਾਓ ਅਤੇ ਹੇਠਾਂ ਦਿੱਤੇ ਫੰਕਸ਼ਨ ਲਾਗੂ ਕਰੋ: ### ਭਾਗ 1: ਬੇਸਿਕ ਫੰਕਸ਼ਨ 1. **`sayHello` ਨਾਮ ਦਾ ਫੰਕਸ਼ਨ ਬਣਾਓ** ਜੋ ਕੋਈ ਵੀ ਪੈਰਾਮੀਟਰ ਨਹੀਂ ਲੈਂਦਾ ਅਤੇ ਸਿਰਫ "Hello!" ਕਨਸੋਲ ਵਿੱਚ ਲੌਗ ਕਰਦਾ ਹੈ। 2. **`introduceYourself` ਨਾਮ ਦਾ ਫੰਕਸ਼ਨ ਬਣਾਓ** ਜੋ ਇੱਕ `name` ਪੈਰਾਮੀਟਰ ਲੈਂਦਾ ਹੈ ਅਤੇ ਕਨਸੋਲ ਵਿੱਚ "Hi, my name is [name]" ਵਰਗਾ ਸੁਨੇਹਾ ਲੌਗ ਕਰਦਾ ਹੈ। ### ਭਾਗ 2: ਡਿਫਾਲਟ ਪੈਰਾਮੀਟਰ ਵਾਲੇ ਫੰਕਸ਼ਨ 3. **`greetPerson` ਨਾਮ ਦਾ ਫੰਕਸ਼ਨ ਬਣਾਓ** ਜੋ ਦੋ ਪੈਰਾਮੀਟਰ ਲੈਂਦਾ ਹੈ: `name` (ਲਾਜ਼ਮੀ) ਅਤੇ `greeting` (ਵਿਕਲਪਿਕ, ਡਿਫਾਲਟ "Hello" ਹੈ)। ਫੰਕਸ਼ਨ ਕਨਸੋਲ ਵਿੱਚ "[greeting], [name]!" ਵਰਗਾ ਸੁਨੇਹਾ ਲੌਗ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ### ਭਾਗ 3: ਵੈਲਿਊਜ਼ ਰਿਟਰਨ ਕਰਨ ਵਾਲੇ ਫੰਕਸ਼ਨ 4. **`addNumbers` ਨਾਮ ਦਾ ਫੰਕਸ਼ਨ ਬਣਾਓ** ਜੋ ਦੋ ਪੈਰਾਮੀਟਰ (`num1` ਅਤੇ `num2`) ਲੈਂਦਾ ਹੈ ਅਤੇ ਉਨ੍ਹਾਂ ਦਾ ਜੋੜ ਰਿਟਰਨ ਕਰਦਾ ਹੈ। 5. **`createFullName` ਨਾਮ ਦਾ ਫੰਕਸ਼ਨ ਬਣਾਓ** ਜੋ `firstName` ਅਤੇ `lastName` ਪੈਰਾਮੀਟਰ ਲੈਂਦਾ ਹੈ ਅਤੇ ਪੂਰਾ ਨਾਮ ਇੱਕ ਸਿੰਗਲ ਸਟ੍ਰਿੰਗ ਵਜੋਂ ਰਿਟਰਨ ਕਰਦਾ ਹੈ। ### ਭਾਗ 4: ਸਾਰਾ ਕੁਝ ਮਿਲਾ ਕੇ 6. **`calculateTip` ਨਾਮ ਦਾ ਫੰਕਸ਼ਨ ਬਣਾਓ** ਜੋ ਦੋ ਪੈਰਾਮੀਟਰ ਲੈਂਦਾ ਹੈ: `billAmount` (ਲਾਜ਼ਮੀ) ਅਤੇ `tipPercentage` (ਵਿਕਲਪਿਕ, ਡਿਫਾਲਟ 15 ਹੈ)। ਫੰਕਸ਼ਨ ਟਿਪ ਦੀ ਰਕਮ ਦੀ ਗਣਨਾ ਕਰਕੇ ਰਿਟਰਨ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ। ### ਭਾਗ 5: ਆਪਣੇ ਫੰਕਸ਼ਨ ਟੈਸਟ ਕਰੋ ਹਰੇਕ ਫੰਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਫੰਕਸ਼ਨ ਕਾਲ ਸ਼ਾਮਲ ਕਰੋ ਅਤੇ ਨਤੀਜੇ `console.log()` ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਦਿਖਾਓ। **ਉਦਾਹਰਨ ਟੈਸਟ ਕਾਲ:** ```javascript // Test your functions here sayHello(); introduceYourself("Sarah"); greetPerson("Alex"); greetPerson("Maria", "Hi"); const sum = addNumbers(5, 3); console.log(`The sum is: ${sum}`); const fullName = createFullName("John", "Doe"); console.log(`Full name: ${fullName}`); const tip = calculateTip(50); console.log(`Tip for $50 bill: $${tip}`); ``` ## ਰੂਬ੍ਰਿਕ | ਮਾਪਦੰਡ | ਸ਼ਾਨਦਾਰ | ਯੋਗ | ਸੁਧਾਰ ਦੀ ਲੋੜ | | -------- | --------- | -------- | ----------------- | | **ਫੰਕਸ਼ਨ ਬਣਾਉਣਾ** | ਸਾਰੇ 6 ਫੰਕਸ਼ਨ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਲਾਗੂ ਕੀਤੇ ਗਏ ਹਨ, ਸਹੀ ਸਿੰਟੈਕਸ ਅਤੇ ਨਾਮਕਰਨ ਦੇ ਨਿਯਮਾਂ ਨਾਲ | 4-5 ਫੰਕਸ਼ਨ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਲਾਗੂ ਕੀਤੇ ਗਏ ਹਨ, ਛੋਟੇ-ਮੋਟੇ ਸਿੰਟੈਕਸ ਸਮੱਸਿਆਵਾਂ ਨਾਲ | 3 ਜਾਂ ਘੱਟ ਫੰਕਸ਼ਨ ਲਾਗੂ ਕੀਤੇ ਗਏ ਹਨ ਜਾਂ ਵੱਡੀਆਂ ਸਿੰਟੈਕਸ ਗਲਤੀਆਂ ਹਨ | | **ਪੈਰਾਮੀਟਰ ਅਤੇ ਡਿਫਾਲਟ ਵੈਲਿਊਜ਼** | ਲਾਜ਼ਮੀ ਪੈਰਾਮੀਟਰ, ਵਿਕਲਪਿਕ ਪੈਰਾਮੀਟਰ ਅਤੇ ਡਿਫਾਲਟ ਵੈਲਿਊਜ਼ ਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਵਰਤਿਆ ਗਿਆ ਹੈ | ਪੈਰਾਮੀਟਰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਵਰਤੇ ਗਏ ਹਨ ਪਰ ਡਿਫਾਲਟ ਵੈਲਿਊਜ਼ ਵਿੱਚ ਸਮੱਸਿਆ ਹੋ ਸਕਦੀ ਹੈ | ਪੈਰਾਮੀਟਰ ਲਾਗੂ ਕਰਨ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਕਮੀ | | **ਵੈਲਿਊਜ਼ ਰਿਟਰਨ ਕਰਨਾ** | ਜਿਨ੍ਹਾਂ ਫੰਕਸ਼ਨ ਨੂੰ ਵੈਲਿਊਜ਼ ਰਿਟਰਨ ਕਰਨੀ ਚਾਹੀਦੀ ਹੈ ਉਹ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਕਰਦੇ ਹਨ, ਅਤੇ ਜਿਨ੍ਹਾਂ ਨੂੰ ਨਹੀਂ ਕਰਨੀ ਚਾਹੀਦੀ ਉਹ ਸਿਰਫ ਕਾਰਵਾਈ ਕਰਦੇ ਹਨ | ਜ਼ਿਆਦਾਤਰ ਰਿਟਰਨ ਵੈਲਿਊਜ਼ ਸਹੀ ਹਨ, ਛੋਟੇ-ਮੋਟੇ ਸਮੱਸਿਆਵਾਂ ਨਾਲ | ਰਿਟਰਨ ਸਟੇਟਮੈਂਟ ਵਿੱਚ ਵੱਡੀਆਂ ਸਮੱਸਿਆਵਾਂ | | **ਕੋਡ ਦੀ ਗੁਣਵੱਤਾ** | ਸਾਫ਼, ਚੰਗੀ ਤਰ੍ਹਾਂ ਸੰਗਠਿਤ ਕੋਡ, ਅਰਥਪੂਰਨ ਵੈਰੀਏਬਲ ਨਾਮ ਅਤੇ ਸਹੀ ਇੰਡੈਂਟੇਸ਼ਨ | ਕੋਡ ਕੰਮ ਕਰਦਾ ਹੈ ਪਰ ਹੋਰ ਸਾਫ਼ ਜਾਂ ਚੰਗੀ ਤਰ੍ਹਾਂ ਸੰਗਠਿਤ ਹੋ ਸਕਦਾ ਹੈ | ਕੋਡ ਪੜ੍ਹਨ ਵਿੱਚ ਮੁਸ਼ਕਲ ਜਾਂ ਖਰਾਬ ਤਰੀਕੇ ਨਾਲ ਬਣਾਇਆ ਗਿਆ | | **ਟੈਸਟਿੰਗ** | ਸਾਰੇ ਫੰਕਸ਼ਨ ਨੂੰ ਉਚਿਤ ਫੰਕਸ਼ਨ ਕਾਲਾਂ ਨਾਲ ਟੈਸਟ ਕੀਤਾ ਗਿਆ ਹੈ ਅਤੇ ਨਤੀਜੇ ਸਪਸ਼ਟ ਤਰੀਕੇ ਨਾਲ ਦਿਖਾਏ ਗਏ ਹਨ | ਜ਼ਿਆਦਾਤਰ ਫੰਕਸ਼ਨ ਦੀ ਯੋਗ ਤਰੀਕੇ ਨਾਲ ਟੈਸਟਿੰਗ ਕੀਤੀ ਗਈ ਹੈ | ਫੰਕਸ਼ਨ ਦੀ ਸੀਮਿਤ ਜਾਂ ਗਲਤ ਟੈਸਟਿੰਗ | ## ਬੋਨਸ ਚੁਣੌਤੀਆਂ (ਵਿਕਲਪਿਕ) ਜੇ ਤੁਸੀਂ ਆਪਣੇ ਆਪ ਨੂੰ ਹੋਰ ਚੁਣੌਤੀ ਦੇਣਾ ਚਾਹੁੰਦੇ ਹੋ: 1. **ਆਪਣੇ ਕਿਸੇ ਇੱਕ ਫੰਕਸ਼ਨ ਦਾ ਐਰੋ ਫੰਕਸ਼ਨ ਵਰਜਨ ਬਣਾਓ** 2. **ਇੱਕ ਫੰਕਸ਼ਨ ਬਣਾਓ ਜੋ ਇੱਕ ਹੋਰ ਫੰਕਸ਼ਨ ਨੂੰ ਪੈਰਾਮੀਟਰ ਵਜੋਂ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ** (ਜਿਵੇਂ ਕਿ ਪਾਠ ਵਿੱਚ ਦਿੱਤੇ `setTimeout` ਦੇ ਉਦਾਹਰਨ) 3. **ਇਨਪੁਟ ਵੈਲੀਡੇਸ਼ਨ ਸ਼ਾਮਲ ਕਰੋ** ਤਾਂ ਜੋ ਤੁਹਾਡੇ ਫੰਕਸ਼ਨ ਗਲਤ ਇਨਪੁਟ ਨੂੰ ਸਹੀ ਤਰੀਕੇ ਨਾਲ ਸੰਭਾਲ ਸਕਣ --- > 💡 **ਸੁਝਾਅ**: ਆਪਣੇ ਬ੍ਰਾਊਜ਼ਰ ਦੇ ਡਿਵੈਲਪਰ ਕਨਸੋਲ (F12) ਨੂੰ ਖੋਲ੍ਹਣਾ ਯਾਦ ਰੱਖੋ ਤਾਂ ਜੋ ਤੁਹਾਡੇ `console.log()` ਸਟੇਟਮੈਂਟ ਦੇ ਨਤੀਜੇ ਵੇਖੇ ਜਾ ਸਕਣ! --- **ਅਸਵੀਕਰਤੀ**: ਇਹ ਦਸਤਾਵੇਜ਼ AI ਅਨੁਵਾਦ ਸੇਵਾ [Co-op Translator](https://github.com/Azure/co-op-translator) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਅਨੁਵਾਦ ਕੀਤਾ ਗਿਆ ਹੈ। ਜਦੋਂ ਕਿ ਅਸੀਂ ਸਹੀ ਹੋਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦੇ ਹਾਂ, ਕਿਰਪਾ ਕਰਕੇ ਧਿਆਨ ਦਿਓ ਕਿ ਸਵੈਚਾਲਿਤ ਅਨੁਵਾਦਾਂ ਵਿੱਚ ਗਲਤੀਆਂ ਜਾਂ ਅਸੁਚਤਤਾਵਾਂ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਮੂਲ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਇਸਦੀ ਮੂਲ ਭਾਸ਼ਾ ਵਿੱਚ ਅਧਿਕਾਰਤ ਸਰੋਤ ਮੰਨਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ। ਮਹੱਤਵਪੂਰਨ ਜਾਣਕਾਰੀ ਲਈ, ਪੇਸ਼ੇਵਰ ਮਨੁੱਖੀ ਅਨੁਵਾਦ ਦੀ ਸਿਫਾਰਸ਼ ਕੀਤੀ ਜਾਂਦੀ ਹੈ। ਅਸੀਂ ਇਸ ਅਨੁਵਾਦ ਦੀ ਵਰਤੋਂ ਤੋਂ ਪੈਦਾ ਹੋਣ ਵਾਲੇ ਕਿਸੇ ਵੀ ਗਲਤਫਹਿਮੀ ਜਾਂ ਗਲਤ ਵਿਆਖਿਆ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਨਹੀਂ ਹਾਂ।