الدوال المدمجة في JavaScript

الدوال المدمجة في JavaScript

تشرح هذه المقالة الدوال المدمجة في JavaScript۔

YouTube Video

الدوال المدمجة في JavaScript

توفر JavaScript مجموعة متنوعة من الدوال المدمجة، وهي أدوات قوية لإنشاء البرامج بكفاءة۔ هنا، سنشرح بالتفصيل الدوال المدمجة النموذجية في JavaScript۔ من خلال تعلم أدوار واستخدامات وتوخي الحذر لكل دالة، ستتمكن من استخدام JavaScript بشكل أكثر فعالية۔

ما هي الدوال المدمجة؟

الدوال المدمجة هي دوال تُوفر كمعيار في JavaScript۔ تم تصميم هذه الدوال لتنفيذ مهام محددة بشكل مختصر۔ لا يحتاج المبرمجون إلى تنفيذها بشكل مستقل، مما يحسن من قابلية قراءة وصيانة الشيفرة۔

الدوال المدمجة الممثلة

parseInt()

1// Convert string to integer
2console.log(parseInt("42"));      // Output: 42
3console.log(parseInt("42px"));    // Output: 42
4console.log(parseInt("0xF", 16)); // Output: 15
5console.log(parseInt("0xF"));     // Output: 15
6console.log(parseInt("px42"));    // Output: NaN
  • parseInt() هي دالة تحلل سلسلة نصية وتحولها إلى عدد صحيح۔ إذا كانت بداية السلسلة تحتوي على رقم، يتم إرجاع هذا الجزء كعدد صحيح۔ يمكن أيضًا تحديد الأساس (radix) اختياريًا۔

  • إذا لم تحتوي بداية السلسلة على رقم، يتم إرجاع NaN (ليس رقمًا)۔ أيضًا، إذا لم يتم تحديد الأساس، فإنه يكون افتراضيًا على النظام العشري، ولكن إذا بدأت السلسلة بـ "0x"، فإنه يتم تفسيرها كنظام سداسي عشري۔

parseFloat()

1// Convert string to float
2console.log(parseFloat("3.14"));      // Output: 3.14
3console.log(parseFloat("3.14abc"));   // Output: 3.14
4console.log(parseFloat("42"));        // Output: 42
  • parseFloat() تحلل سلسلة نصية وتحولها إلى عدد عشري (يحتوي على فاصلة عشرية)۔ يُستخدم عند التعامل مع الأرقام التي تحتوي على فاصلة عشرية۔

  • مثل parseInt()، إذا لم تكن بداية السلسلة رقمًا، يتم إرجاع NaN۔ يتميز بتحليل الجزء الصحيح والجزء العشري بشكل صحيح۔

isNaN()

1console.log(isNaN(NaN));         // Output: true
2console.log(isNaN(42));          // Output: false
3console.log(isNaN("hello"));     // Output: true
  • isNaN() تحدد ما إذا كانت القيمة المعطاة هي NaN۔ NaN (ليس رقمًا) تمثل قيمة غير صحيحة كعدد۔

  • isNaN() صالحة أيضًا لأنواع البيانات غير الأرقام، فعلى سبيل المثال، تعيد true إذا لم يتم تحويل السلسلة النصية إلى رقم۔

Number()

1console.log(Number("42"));        // Output: 42
2console.log(Number("3.14"));      // Output: 3.14
3console.log(Number("0xff"));      // Output: 255
4console.log(Number("abc"));       // Output: NaN
  • Number() هي دالة تحوّل السلاسل النصية أو أنواع البيانات الأخرى إلى رقم۔ سيعيد NaN إذا تم تقديم سلسلة غير رقمية۔

  • على عكس parseInt() أو parseFloat()، يعتبر Number() ذلك تحويلًا غير صالح ويعيد NaN إذا كانت السلسلة تحتوي على أحرف غير رقمية۔

String()

1console.log(String(42));           // Output: "42"
2console.log(String(3.14));         // Output: "3.14"
3console.log(String(true));         // Output: "true"
4console.log(String(null));         // Output: "null"
5console.log(String(undefined));    // Output: "undefined"
  • String() هي وظيفة تحول الأرقام وأنواع البيانات الأخرى إلى سلاسل نصية.۔ String(42) يعيد النص "42"
  • إذا كانت القيمة المراد تحويلها هي null أو undefined، فإنه يعيد السلاسل النصية "null" أو "undefined" على التوالي.۔
  • إنه مفيد للتعامل مع أنواع بيانات مختلفة، مثل الأرقام والقيم المنطقية أو الكائنات، عن طريق تحويلها إلى سلاسل نصية.۔

Array

1const arr = Array(3);
2console.log(arr); // Output: [ <3 empty items> ]
3
4const arr2 = Array(1, 2, 3);
5console.log(arr2); // Output: [1, 2, 3]
  • Array هو منشئ يستخدم لإنشاء مصفوفات جديدة.۔
  • إذا كان هناك وسيط واحد، فإنه يُعتبر طول المصفوفة، ويتم إنشاء مصفوفة فارغة.۔
  • إذا كان هناك عدة وسائط، يتم إنشاء مصفوفة مع تلك القيم كعناصر لها.۔

Array.isArray()

1console.log(Array.isArray([1, 2, 3])); // Output: true
2console.log(Array.isArray("not an array")); // Output: false
  • Array.isArray() هي طريقة تتحقق مما إذا كان الوسيط مصفوفة أم لا.۔
  • تعيد true إذا كان الوسيط مصفوفة، وfalse إذا لم يكن كذلك.۔

isFinite()

1console.log(isFinite(42));         // Output: true
2console.log(isFinite(Infinity));   // Output: false
3console.log(isFinite(NaN));        // Output: false
  • isFinite() تحدد ما إذا كانت القيمة المعطاة محدودة۔ تُعيد true للأرقام المحدودة، وfalse خلاف ذلك (مثل اللانهائية أو NaN

  • في JavaScript، تمثل Infinity و -Infinity اللانهائية وهي من نوع الأرقام، ولكن isFinite() تعتبر اللانهائية قيمة غير صالحة۔

eval()

1let expression = "2 + 2";
2console.log(eval(expression));    // Output: 4
3
4console.log(eval("var x = 10; x * 2"));  // Output: 20
  • eval() هي وظيفة تعمل على تقييم وتنفيذ كود JavaScript المُقدم كسلسلة نصية۔ يمكنك تنفيذ كود JavaScript بشكل ديناميكي۔

  • eval() قوية جدًا، ولكنها تشكل خطرًا أمنيًا، لذلك يجب تجنبها في التطوير الفعلي۔ تنفيذ الكود المُقدم خارجيًا باستخدام eval() قد يؤدي إلى سلوك غير مقصود وثغرات أمنية۔

encodeURI() / decodeURI()

1let url = "https://example.com/?name=John Doe&age=25";
2let encodedUrl = encodeURI(url);
3console.log(encodedUrl);
4// Output: https://example.com/?name=John%20Doe&age=25
5
6let decodedUrl = decodeURI(encodedUrl);
7console.log(decodedUrl);
8// Output: https://example.com/?name=John Doe&age=25
  • encodeURI() هي وظيفة تُستخدم لترميز (تحويل) الأحرف التي لا يمكن استخدامها في عنوان URL۔ من ناحية أخرى، تقوم decodeURI() بفك ترميز عنوان URL مُرمز إلى شكله الأصلي۔

  • الترميز مهم بشكل خاص عند التعامل مع الأحرف الخاصة۔ على سبيل المثال، يجب ترميز الأحرف مثل المسافات أو & ليتم تضمينها بشكل صحيح في عنوان URL، لذا يجب معالجتها بشكل مناسب باستخدام encodeURI()۔

setTimeout() / setInterval()

 1// Execute a function after 2 seconds
 2setTimeout(() => {
 3    console.log("This runs after 2 seconds");
 4}, 2000);
 5
 6// Execute a function every 1 second
 7let intervalId = setInterval(() => {
 8    console.log("This runs every 1 second");
 9}, 1000);
10
11// Stop the interval after 5 seconds
12setTimeout(() => {
13    clearInterval(intervalId);
14}, 5000);
  • setTimeout() هي وظيفة مؤقت تُستخدم لتنفيذ وظيفة مرة واحدة بعد وقت محدد۔ setInterval() تقوم بتكرار تنفيذ وظيفة بفواصل زمنية محددة۔

  • setTimeout() و setInterval() يتم تنفيذهما بشكل غير متزامن، حيث يتم استدعاء الوظيفة بعد انتهاء الوقت المحدد۔ من الممكن أيضًا إلغاء التنفيذ باستخدام clearTimeout() أو clearInterval()۔

الملخص

استخدام وظائف JavaScript المدمجة يُمكنك من كتابة برامج أبسط وأكثر كفاءة۔ الوظائف المقدمة هنا أساسية ومفيدة في مختلف المواقف۔ تأكد من كتابة كود فعلي وتأكيد سلوكه لتعميق فهمك۔

تعلم معالجة أكثر تعقيدًا واستخدام الوظائف المتقدمة لتحسين مهاراتك في JavaScript۔

يمكنك متابعة المقالة أعلاه باستخدام Visual Studio Code على قناتنا على YouTube.۔ يرجى التحقق من القناة على YouTube أيضًا.۔

YouTube Video