Skip to content

Commit 9fed78a

Browse files
committed
fixes
1 parent c22c83f commit 9fed78a

6 files changed

Lines changed: 29 additions & 30 deletions

File tree

1-js/09-classes/01-class/article.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
# الصيغة الأساسية للClass
1515

16-
الصيغة الأساسية هي:
16+
الصيغة الأساسية هي:
1717
```js
1818
class MyClass {
1919
// class methods
@@ -56,11 +56,11 @@ user.sayHi();
5656
... ثم يمكننا استدعاء طرق الكائن ، مثل `user.sayHi ()`.
5757

5858

59-
"` `warn header =" لا فاصلة بين طرق الفصل "
59+
```warn header=" لا فاصلة بين طرق الفصل "
6060
من المشاكل الشائعة للمطورين المبتدئين وضع فاصلة بين طرق الفصل ، مما يؤدي إلى خطأ في بناء الجملة.
6161
6262
لا يجب الخلط بين التدوين هنا وحرف الشيء. داخل الفصل الدراسي ، لا يلزم وجود فواصل.
63-
``
63+
```
6464

6565
## ما هي الclass ؟
6666

@@ -95,7 +95,7 @@ alert(typeof User); // function
9595

9696
![](class-user.svg)
9797

98-
إليك كود لتتفكر فيه:
98+
إليك كود لتتفكر فيه:
9999

100100
```js run
101101
class User {
@@ -290,9 +290,9 @@ new User().sayHi();
290290

291291
## حقول class
292292

293-
"` `warn header =" قد تحتاج المتصفحات القديمة إلى ملف متعدد "
293+
```warn header=" قد تحتاج المتصفحات القديمة إلى ملف متعدد "
294294
تعد حقول الصف إضافة حديثة للغة.
295-
``
295+
```
296296

297297
في السابق ، كانت فصولنا تمتلك طرقًا فقط.
298298

1-js/09-classes/05-extend-natives/article.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
# امتداد الـ `classes` المدمجة
2+
# امتداد الـ `classes` المدمجة
33

44
الـ `classes` المدمجة مثل الـ `Array` و `Map` وغيرهم قابلين للامتداد أيضا
55

@@ -64,9 +64,9 @@ alert(filteredArr.isEmpty()); // Error: filteredArr.isEmpty is not a function
6464

6565
كما ترى ، الآن يُرجع `.filter`` Array`. لذلك لم يتم تمرير الدالة الموروثة أكثر من ذلك.
6666

67-
"` `smart header =" مجموعات أخرى تعمل بنفس الطريقة "
67+
```smart header=" مجموعات أخرى تعمل بنفس الطريقة "
6868
تعمل مجموعات أخرى ، مثل `Map` و` Set` ، على حد سواء. كما أنهم يستخدمون `Symbol.species`.
69-
``
69+
```
7070

7171
## لا وجود للتوريث الثابت في كل المدمجات
7272

1-js/11-async/08-async-await/article.md

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Async/await (غير المتزامن /الانتظار)
1+
# Async/await (غير المتزامن /الانتظار)
22

33
هناك بنية خاصة للعمل مع الوعود بطريقة أكثر راحة ، تسمى "غير متزامن / انتظار". من السهل جدًا فهمها واستخدامها.
44

@@ -72,7 +72,7 @@ f();
7272

7373
إنها مجرد بنية أكثر أناقة للحصول على نتيجة الوعد من "الوعد. ثم" ، أسهل للقراءة والكتابة.
7474

75-
`` `` warn header = "لا يمكن استخدام` انتظار 'في الوظائف العادية "
75+
```` warn header="لا يمكن استخدام` انتظار 'في الوظائف العادية "
7676
إذا حاولنا استخدام `` انتظار '' في وظيفة غير متزامنة ، فسيكون هناك خطأ في بناء الجملة:
7777

7878

@@ -86,7 +86,7 @@ function f() {
8686
```
8787

8888
سنحصل على هذا الخطأ إذا لم نضع `async` قبل دالة. كما ذكر ، يعمل `` انتظار '' فقط داخل `وظيفة غير متزامنة`.
89-
`` ``
89+
````
9090
9191
لنأخذ مثال `showAvatar ()` من الفصل <info: prom-chaining> ونعيد كتابته باستخدام `async / await`:
9292
@@ -123,7 +123,7 @@ showAvatar();
123123
124124
نظيفة جدا وسهلة القراءة ، أليس كذلك؟ أفضل بكثير من ذي قبل.
125125
126-
`` `` smart header = "` `انتظار '' لن يعمل في رمز المستوى الأعلى"
126+
````smart header="` `انتظار '' لن يعمل في رمز المستوى الأعلى"
127127
يميل الأشخاص الذين بدأوا للتو في استخدام `` انتظار '' إلى نسيان حقيقة أنه لا يمكننا استخدام `` انتظار '' في رمز المستوى الأعلى. على سبيل المثال ، لن يعمل هذا:
128128
129129
```js run
@@ -141,10 +141,9 @@ But we can wrap it into an anonymous async function, like this:
141141
...
142142
})();
143143
```
144-
145-
146144
````
147-
"" `` smart header = "` `في انتظار` يقبل \" ثماني \ ""
145+
146+
````smart header="` `في انتظار` يقبل \" ثماني \ ""
148147
مثل "prom.then`" ، يتيح لنا "await" استخدام العناصر القابلة للاستعمال (تلك التي تستخدم طريقة `ثم` القابلة للاستدعاء). الفكرة هي أن كائن طرف ثالث قد لا يكون وعدًا ، ولكنه متوافق مع الوعد: إذا كان يدعم `.then` ، فهذا يكفي لاستخدامه مع` `بانتظار ''.
149148

150149
إليك فئة `` Thenable` التجريبية ؛ تقبل "الانتظار" أدناه حالاتها:
@@ -171,9 +170,9 @@ f();
171170
```
172171

173172
إذا حصل `await` على كائن غير مبشر باستخدام` .then` ، فإنه يستدعي هذه الطريقة التي توفر الوظائف المضمنة `حل 'و'رفض` كوسيطات (تمامًا مثلما يفعل لمنفذ` وعد عادي'). ثم تنتظر `انتظار 'حتى يتم استدعاء أحدهم (في المثال أعلاه يحدث في السطر` (*) `) ثم يواصل النتيجة.
174-
`` ``
173+
````
175174
176-
"" smart header = "أساليب فئة Async"
175+
````smart header="أساليب فئة Async"
177176
للإعلان عن أسلوب فئة غير متزامن ، ما عليك سوى إلحاقها بـ `غير متزامن ':
178177
179178
```js run
@@ -268,13 +267,13 @@ f().catch(alert); // TypeError: failed to fetch // (*)
268267
إذا نسينا إضافة ".catch" هناك ، فإننا نتلقى خطأ وعد غير معالج (قابل للعرض في وحدة التحكم). يمكننا اكتشاف مثل هذه الأخطاء باستخدام معالج الأحداث `unhandledrejection` العالمي كما هو موضح في الفصل <info: prom-error-handling>.
269268

270269

271-
"` `smart header =" `async / await` و` prom.then / catch` "
270+
```smart header=" `async / await` و` prom.then / catch` "
272271
عندما نستخدم "غير متزامن / انتظار" ، نادرًا ما نحتاج إلى ". ثم" ، لأن "انتظار" يتعامل مع الانتظار. ويمكننا استخدام 'try..catch` العادية بدلاً من `.atch'. هذا عادة (ولكن ليس دائما) أكثر ملاءمة.
273272

274273
ولكن في المستوى العلوي من الشفرة ، عندما نكون خارج أي وظيفة "غير متزامن" ، يتعذر علينا استخدام "انتظار" من الناحية النحوية ، لذلك من المعتاد إضافة ".then / catch" للتعامل مع النتيجة النهائية أو خطأ السقوط ، كما هو الحال في السطر `(*)` من المثال أعلاه.
275-
``
274+
```
276275
277-
"` `smart header =" `async / await` يعمل بشكل جيد مع" Promise.all` "
276+
```smart header=" `async / await` يعمل بشكل جيد مع" Promise.all` "
278277
عندما نحتاج إلى انتظار وعود متعددة ، يمكننا أن نلفها في "Promise.all" ثم "انتظر":
279278
280279
```js
@@ -288,7 +287,7 @@ let results = await Promise.all([
288287

289288
في حالة وجود خطأ ، يتم نشره كالمعتاد ، من الوعد الفاشل إلى "Promise.all" ، ثم يصبح استثناء يمكننا التقاطه باستخدام "try..catch" حول المكالمة.
290289

291-
`` ``
290+
````
292291
293292
## ملخص
294293
@@ -304,4 +303,4 @@ let results = await Promise.all([
304303
305304
يوفرون معًا إطارًا رائعًا لكتابة رمز غير متزامن يسهل قراءته وكتابته.
306305
307-
باستخدام "غير متزامن / انتظار" ، نادرًا ما نحتاج إلى كتابة "وعد. ثم / التقاط" ، ولكن لا يزال يتعين علينا ألا ننسى أنها تستند إلى الوعود ، لأنه في بعض الأحيان (على سبيل المثال في النطاق الخارجي) علينا استخدام هذه الأساليب. كما أن "Promise.all" جميل عندما ننتظر العديد من المهام في وقت واحد.
306+
باستخدام "غير متزامن / انتظار" ، نادرًا ما نحتاج إلى كتابة "وعد. ثم / التقاط" ، ولكن لا يزال يتعين علينا ألا ننسى أنها تستند إلى الوعود ، لأنه في بعض الأحيان (على سبيل المثال في النطاق الخارجي) علينا استخدام هذه الأساليب. كما أن "Promise.all" جميل عندما ننتظر العديد من المهام في وقت واحد.

2-ui/1-document/05-basic-dom-node-properties/article.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ alert( document.body instanceof EventTarget ); // true
6666

6767
من السهل أيضًا رؤية ذلك عن طريق إخراج عنصر باستخدام "console.dir (elem)" في المستعرض. هناك في وحدة التحكم يمكنك مشاهدة `HTMLElement.prototype` و` Element.prototype` وما إلى ذلك.
6868

69-
"` `smart header =" `` console.dir (elem) `مقابل` console.log (elem) ""
69+
```smart header=" `` console.dir (elem) `مقابل` console.log (elem) ""
7070
تدعم معظم المتصفحات أمرين في أدوات المطورين الخاصة بهم: `console.log` و` console.dir`. يخرجون حججهم إلى وحدة التحكم. بالنسبة لكائنات JavaScript ، تقوم هذه الأوامر بنفس الشيء.
7171

7272
ولكن بالنسبة لعناصر DOM فهي مختلفة:

2-ui/1-document/10-size-and-scroll-window/article.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ alert( document.documentElement.clientWidth ); // window width minus the scrollb
3030
```
3131

3232
في معظم الحالات ، نحتاج إلى عرض النافذة * المتوفرة *: لرسم شيء ما أو وضعه. هذا هو: داخل أشرطة التمرير إذا كان هناك أي. لذا يجب علينا استخدام `documentElement.clientHeight / Width`.
33-
`` ``
33+
````
3434
35-
`` `warn header =" "DOCTYPE` مهم"
35+
````warn header=" "DOCTYPE` مهم"
3636
يرجى ملاحظة: قد تعمل خصائص الهندسة عالية المستوى بشكل مختلف قليلاً عندما لا يكون هناك <! DOCTYPE HTML> `في HTML. الأشياء الغريبة ممكنة.
3737
3838
في HTML الحديثة يجب أن نكتب دائمًا "DOCTYPE".
39-
``
39+
````
4040

4141
## عرض / ارتفاع الوثيقة
4242

9-regular-expressions/11-regexp-groups/article.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,11 +163,11 @@ alert( match[2] ); // c
163163

164164
## البحث عن جميع التطابقات مع المجموعات: matchAll
165165

166-
`` `warn header =" "matchAll` هي طريقة جديدة ، قد تكون هناك حاجة إلى تعبئة متعددة"
166+
```warn header=" `matchAll` هي طريقة جديدة ، قد تكون هناك حاجة إلى تعبئة متعددة"
167167
الطريقة `matchAll` غير مدعومة في المتصفحات القديمة.
168168

169169
قد تكون هناك حاجة إلى تعبئة متعددة ، مثل <https://github.com/ljharb/String.prototype.matchAll>.
170-
``
170+
```
171171
172172
عندما نبحث عن جميع التطابقات (الإبلاغ عن `pattern: g`) ، لا تُرجع طريقة` match` محتويات المجموعات.
173173
@@ -361,4 +361,4 @@ alert( result.length ); // 2 (no more items in the array)
361361

362362
يمكننا أيضًا استخدام محتويات الأقواس في سلسلة الاستبدال في `str.replace`: بالرقم` $ n` أو بالاسم `$ <name>`.
363363

364-
يمكن استبعاد مجموعة من الترقيم عن طريق إضافة "pattern:؟:" في بدايتها. يُستخدم هذا عندما نحتاج إلى تطبيق مُحدِّد الكمية على المجموعة بأكملها ، ولكن لا نريدها كبند منفصل في صفيف النتائج. لا يمكننا أيضًا الإشارة إلى هذه الأقواس في سلسلة الاستبدال.
364+
يمكن استبعاد مجموعة من الترقيم عن طريق إضافة "pattern:؟:" في بدايتها. يُستخدم هذا عندما نحتاج إلى تطبيق مُحدِّد الكمية على المجموعة بأكملها ، ولكن لا نريدها كبند منفصل في صفيف النتائج. لا يمكننا أيضًا الإشارة إلى هذه الأقواس في سلسلة الاستبدال.

0 commit comments

Comments
 (0)