Skip to content

Commit 67d486e

Browse files
authored
Merge pull request #129 from javascript-tutorial/sync-c3a11c85
Sync with upstream @ c3a11c8
2 parents 6e28be2 + 59ce83c commit 67d486e

2 files changed

Lines changed: 6 additions & 7 deletions

File tree

1-js/02-first-steps/09-comparison/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#المقارنات
1+
# المقارنات
22

33
نحن نعرف الكثير من معاملات المقارنة من الرياضيات
44

1-js/04-object-basics/07-optional-chaining/article.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ alert( user && user.address && user.address.street ); // يظهر لنا undefin
4242

4343
وللإيجاز، سنقول ضمن هذه المقالة أن شيئاً ما "موجود" إذا لم تكن قيمته `null` ولم تكن `undefined` كذلك.
4444

45-
4645
وأما الطريقة الآمنة للوصول لـِ `user.address.street` هي:
4746

4847
```js run
@@ -57,14 +56,16 @@ alert( user?.address?.street ); // سيظهر لنا بدون حدوث خطأ un
5756
let user = null;
5857

5958
alert( user?.address ); // undefined
60-
6159
alert( user?.address.street ); // undefined
62-
alert( user?.address.street.anything ); // undefined
6360
```
6461
6562
يرجى ملاحظة أن التركيب أو الشقّ `.?` يعمل بشكل صحيح حيث يتم وضعه بالضبط، وليس بعد ذلك المكان الذي تم وضعه فيه.
6663
67-
في السطرين الأخيرين، سيتوقف تقييم الكود البرمجي بشكل فوري بعد الشقّ `.?user` ولا يستمر أبداً للخصائص التي تليه. ولكن إذا كان الغرض `user` موجوداً بالفعل، فيجب أن تكون الخصائص الوسيطة موجودة ونقصد بالخصائص الوسيطة `user.address` مثلاً.
64+
في السطرين الأخيرين، سيتوقف تقييم الكود البرمجي بشكل فوري بعد الشقّ `.?user` ولا يستمر أبداً للخصائص التي تليه.
65+
66+
يقوم التسلسل الاختياري فقط باختبار القيم `null/undefined`، ولا يتداخل مع ميكانيكية أي من اللغات الأخرى.
67+
68+
ولكن إذا كان الغرض `user` موجوداً بالفعل، فيجب أن تكون الخصائص الوسيطة موجودة ونقصد بالخصائص الوسيطة `user.address` مثلاً.
6869
6970
```warn header="لا تفرط في استخدام تركيب التسلسل الاختياري"
7071
يجب أن نستخدم التركيب `.?` فقط عندما يكون هناك غرض، كائن أو خاصية غير موجودة بالأصل.
@@ -81,8 +82,6 @@ alert( user?.address.street.anything ); // undefined
8182
// ReferenceError: user is not defined
8283
user?.address;
8384
```
84-
يقوم التسلسل الاختياري فقط باختبار القيم `null/undefined`، ولا يتداخل مع ميكانيكية أي من اللغات الأخرى.
85-
````
8685
8786
## اختصار الطرق (Short-circuiting)
8887

0 commit comments

Comments
 (0)