Skip to content

Commit

Permalink
More courses from object section
Browse files Browse the repository at this point in the history
  • Loading branch information
TeaByte committed Feb 19, 2024
1 parent 8369b40 commit 26011b8
Show file tree
Hide file tree
Showing 9 changed files with 173 additions and 8 deletions.
2 changes: 1 addition & 1 deletion courses/functions/global-scope.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: النطاق العالمي والوظائف
title: النطاق العالمي والدوال
snippet: في JavaScript، يشير النطاق إلى رؤية المتغيرات
order: 2
---
Expand Down
2 changes: 1 addition & 1 deletion courses/functions/local-scope.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: النطاق المحلي والوظائف
title: النطاق المحلي والدوال
snippet: المتغيرات التي تم الإعلان عنها داخل الدالة
order: 3
---
Expand Down
2 changes: 1 addition & 1 deletion courses/objects/_data.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"label": "الكائنات",
"lableSlug": "objects",
"order": 11
"order": 12
}
29 changes: 29 additions & 0 deletions courses/objects/accessing-object-properties-with-variables.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
title: الوصول إلى خاصية مخزنة كقيمة متغير
snippet: يمكن أن يكون هذا مفيدًا جدًا للتكرار على خصائص الكائن
order: 3
---

الاستخدام الآخر لتدوين الأقواس على الكائنات هو الوصول إلى خاصية مخزنة كقيمة
متغير. يمكن أن يكون هذا مفيدًا جدًا للتكرار على خصائص الكائن. او البحث داخل خصائص
الكائن.

فيما يلي مثال لاستخدام متغير للوصول إلى خاصية:

```js
const dogs = {
Fido: "Mutt",
Hunter: "Doberman",
Snoopie: "Beagle",
};

const myDog = "Hunter";
const myBreed = dogs[myDog];
console.log(myBreed);
```

سيتم عرض سلسلة `Doberman` في وحدة التحكم.

<mark>
لاحظ أننا لا نستخدم علامات الاقتباس حول اسم المتغير عند استخدامه للوصول إلى الخاصية لأننا نستخدم قيمة المتغير وليس الاسم.
</mark>
36 changes: 36 additions & 0 deletions courses/objects/delete-properties-from-object.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: حذف الخصائص من كائن
snippet: لا يوجد
order: 5
---

يمكننا أيضًا حذف الخصائص من كائنات بهذه الطريقة:

```js
delete ourDog.bark;
```

مثال توضيحي:

```js
const ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"],
"bark": "bow-wow",
};

delete ourDog.bark;
```

عندما يتنفذ سطر الحذف هكذا سيكون شكل الكائن الجديد:

```js
{
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"]
}
```
40 changes: 40 additions & 0 deletions courses/objects/testing-objects-for-properties.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
title: اختبار خصائص الكائنات
snippet: لا يوجد
order: 6
---

للتحقق من وجود خاصية على كائن معين أم لا، يمكنك استخدام دالة كائنية (Method)
`()hasOwnProperty.`.

<mark>
ستتعرف في دروس قادما عن الدوال الكائنية او بما يعرف بال <code>(Methods)</code>
</mark>

```js
const ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"],
"bark": "bow-wow",
};

console.log(ourDog.hasOwnProperty("bark")); // true
```

تُرجع `true` `ourDog.hasOwnProperty(someProperty)` أو `false` بناءً على ما إذا
كانت الخاصية موجودة على الكائن أم لا.

مثال اخر:

```js
function checkForProperty(object, property) {
return object.hasOwnProperty(property);
}

checkForProperty({ top: "hat", bottom: "pants" }, "top"); // true
checkForProperty({ top: "hat", bottom: "pants" }, "middle"); // false
```

يُرجع استدعاء الدالة `checkForProperty` الأول `true`، بينما يُرجع الثاني `false`.
61 changes: 61 additions & 0 deletions courses/objects/updating-object-properties.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
title: تحديث و إضافة خصائص جديدة للكائن
snippet: لا يوجد
order: 4
---

## تحديث خصائص الكائن

بعد إنشاء كائن JavaScript، يمكنك تحديث خصائصه في أي وقت تمامًا كما تفعل مع أي
متغير آخر. يمكنك استخدام تدوين النقطة أو القوس للتحديث.

على سبيل المثال، دعونا ننظر إلى المثال:

```js
const ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"],
};
```

فلنغير اسم الكلب إلى `"Buddy"`

```js
// إليك كيفية تحديث خاصية اسم الكائن:
ourDog.name = "Buddy";
// او عبر الاقواس
ourDog["name"] = "Buddy";
```

الآن عندما نقوم باستدعاء اسم الكلب الخاص بنا، فبدلاً من الحصول على `"Camper"`
سنحصل على اسمه الجديد `"Buddy"`

## اضافة خصائص جديدة للكائن

يمكنك إضافة خصائص جديدة إلى كائنات JavaScript الموجودة بنفس الطريقة التي تقوم
بها بتعديلها.

إليك كيفية إضافة خاصية `bark` إلى `ourDog`:

```js
ourDog.bark = "bow-wow";
// او عبر الاقواس
ourDog["bark"] = "bow-wow";
```

الآن عندما نقوم باستدعاء `ourDog.bark`، سنحصل على `bow-wow`.

مثال توضيحي:

```js
const ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"],
};

ourDog.bark = "bow-wow";
```
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: إرجاع القيم المنطقية من الوظائف
title: إرجاع القيم المنطقية من الدوال
snippet: لا يوجد
order: 9
order: 11
---

قد تتذكر من المقارنة مع عامل المساواة أن جميع عوامل المقارنة تُرجع قيمة منطقية
Expand Down
5 changes: 2 additions & 3 deletions courses/variables/case-sensitivity-in-variables.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
---
title: فهم حساسية الحالة في المتغيرات
snippet: في JavaScript، جميع المتغيرات وأسماء الوظائف حساسة لحالة الأحرف
snippet: في JavaScript، جميع المتغيرات وأسماء الدوال حساسة لحالة الأحرف
order: 4
---

في JavaScript، جميع المتغيرات وأسماء الوظائف حساسة لحالة الأحرف. وهذا يعني أن
التسميه مهمة.
في JavaScript، جميع المتغيرات حساسة لحالة الأحرف. وهذا يعني أن التسميه مهمة.

`MYVAR` ليس هو نفسه `MyVar` أو `myvar`. من الممكن أن يكون لديك عدة متغيرات مميزة
بنفس الاسم ولكن بحالة مختلفة. يوصى بشدة بعدم استخدام ميزة اللغة هذه، من أجل
Expand Down

0 comments on commit 26011b8

Please sign in to comment.