في هذه الصفحة
هنتكلم في المقال دا عن الـ primitive and object types in Javascript وهنقارن بينهم من حيث 3 حاجات وهم:
- Mutability
- Copying
- As a function arguments
المقال هدفه إننا نفهم طبيعة الأنواع دي وازاي الكود ممكن يختلف على حسب أنواع المتغيرات اللي بنتعامل معاها في البرنامج، دي حاجة هتخلينا فاهمين الكود بيشتغل إزاي وبالتالي لو لقينا البرنامج بيعمل حاجة غير المتوقع منه نبقى عارفين ايه اللي محتاجين نغيره عشان نخيله يشتغل صح ونقدر نعمل Debugging بسهولة.
تعالوا نتكلم عن أول وجه مقارنة بين الـ primitive and object types وهو الـ mutability بس قبل ما نتكلم عن الـ mutability خلينا نعرف ايه هي الـ primitive type وايه الـ object types.
- Primitive types: String,Number, Boolean,Undefined, Symbol
- Object types: objects, arrays.
Mutability ( القابلية للتغير )
هنبدأ بمثال عشان نفهم يعني ايه mutability وازاي بتختلف على حسب احنا شغالين مع primitive ولا مع object، في المثال ده هنعرف string و array :
let s = "eqraa";
let arr = [1 , 2 , 3 , 4 , 5];
وهنبدأ نجرب شوية حاجات على كل متغير، في الـ string هنجرب نغير أول حرف نخليه E بدل e وفي الـ array هنجرب نغير أول رقم نخليه صفر، وهنشوف هل هيتغيروا فعلاََ ولا لأ
s[0] = 'E;
arr[0] = 0;
console.log("s = " + s);
console.log("arr = " + arr);
لما نيجي نعمل run النتيجة دي اللي هتطلع:
هنلاحظ إن الـ string متغيرش بس الـ array اتغير.
هنجرب حاجة كمان وهي إننا نغير الـ length للـ string والـ array:
console.log("The length of the string s is originally",s.length);
console.log("The length of the array arr is originally",arr.length );
// updating the length
s.length = 100;
arr.length = 100;
// results
console.log("The length of the string sis now " , s.length);
console.log("The length of the array arr is now", arr.length);
ودي النتيجة اللي هتطلع لما نعمل run: