الدوال المدمجة في 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 أيضًا.۔