Files
freeCodeCamp/curriculum/challenges/arabic/02-javascript-algorithms-and-data-structures/basic-javascript/passing-values-to-functions-with-arguments.md
2022-10-20 09:13:17 -07:00

3.2 KiB

id, title, challengeType, videoUrl, forumTopicId, dashedName
id title challengeType videoUrl forumTopicId dashedName
56533eb9ac21ba0edf2244bd تمرير القيم إلى الوظائف باستخدام الوسيطات 1 https://scrimba.com/c/cy8rahW 18254 passing-values-to-functions-with-arguments

--description--

الحجج هي متغيرات تعمل كعناصر ناقلة للقيم الذي يجب أن تكون مدخلة للوظيفة عند استدعائها. عندما يتم تعريف الوظيفة، فإنها تُعرَّف عادة مع واحد أو أكثر من الحجج. القيم الفعلية التي تدخل (أو "تمرر") إلى وظيفة عند استدعائها هي معروفة باسم الحجج (arguments).

إليك وظيفة ذات حجتين، param1 و param2:

function testFun(param1, param2) {
  console.log(param1, param2);
}

ثم يمكننا استدعاء testFun مثل: testFun("Hello", "World");. لقد تمريرنا حجج من نوع مقطع, Hello و World. داخل الحجة، param1 سيتساوى مع المقطع Hello و param2 سيتساوى مع المقطع World. لاحظ أنه يمكنك استدعاء testFun مرة أخرى مع حجج مختلفة والمعلمات سوف تأخذ قيمة الحجج الجديدة.

--instructions--

  1. أنشاء وظيفة تسمى functionWithArgs تقبل حجج وتخرج المجموع الخاص بهم إلى وحدة التحكم.
  2. استدعي الوظيفة برقمين كحجتين.

--hints--

يجب أن تكون functionWithArgs وظيفة.

assert(typeof functionWithArgs === 'function');

يجب أن تنتج functionWithArgs(1,2) قيمة 3.

if (typeof functionWithArgs === 'function') {
  capture();
  functionWithArgs(1, 2);
  uncapture();
}
assert(logOutput == 3);

يجب أن تنتج functionWithArgs(7,9) قيمة 16.

if (typeof functionWithArgs === 'function') {
  capture();
  functionWithArgs(7, 9);
  uncapture();
}
assert(logOutput == 16);

يجب عليك استدعاء functionWithArgs برقمين بعد تعريفه.

assert(
  /functionWithArgs\([-+]?\d*\.?\d*,[-+]?\d*\.?\d*\)/.test(
    code.replace(/\s/g, '')
  )
);

--seed--

--before-user-code--

var logOutput = "";
var originalConsole = console
function capture() {
    var nativeLog = console.log;
    console.log = function (message) {
        if(message) logOutput = JSON.stringify(message).trim();
        if(nativeLog.apply) {
          nativeLog.apply(originalConsole, arguments);
        } else {
          var nativeMsg = Array.prototype.slice.apply(arguments).join(' ');
          nativeLog(nativeMsg);
        }
    };
}

function uncapture() {
  console.log = originalConsole.log;
}

capture();

--after-user-code--

uncapture();

if (typeof functionWithArgs !== "function") { 
  (function() { return "functionWithArgs is not defined"; })();
} else {
  (function() { return logOutput || "console.log never called"; })();
}

--seed-contents--


--solutions--

function functionWithArgs(a, b) {
  console.log(a + b);
}
functionWithArgs(10, 5);