1- # المعامل الشرطي: if, '?'
1+ # العامل الشرطي: if, '?'
22
33أحيانًا نريد تنفيذ أوامر مختلفة إعتمادًا على حالات مختلفة.
44
5- لعمل هذا يمكننا استخدام عبارة ` if ` والمعامل الشرطي ` ? ` , الذي يسمى أيضًا معامل "علامة الاستفهام".
5+ لعمل هذا يمكننا استخدام عبارة ` if ` والالعامل الشرطي ` ? ` , الذي يسمى أيضًا العامل "علامة الاستفهام".
66
77## عبارة "if"
88
@@ -24,8 +24,8 @@ if (year == 2015) alert( 'إجابة صحيحة!' );
2424
2525``` js
2626if (year == 2015 ) {
27- alert ( " هذه صحيح!" );
28- alert ( " أنت ذكي!" );
27+ alert (" هذه صحيح!" );
28+ alert (" أنت ذكي!" );
2929}
3030```
3131
@@ -37,8 +37,8 @@ if (year == 2015) {
3737
3838دعنا نراجع على قواعد التحويل من هذا الدرس < info:type-conversions > :
3939
40- - الرقم ` 0 ` , النص الفارغ ` "" ` , ` null ` , ` undefined ` , و ` NaN ` يصبحون ` false ` . ولهذا السبب يسمون "falsy" قيم.
41- - القيم الأخرى تصبح ` true ` , ولهذا يسمون "truthy".
40+ - الرقم ` 0 ` , النص الفارغ ` "" ` , ` null ` , ` undefined ` , و ` NaN ` يصبحون ` false ` . ولهذا السبب يسمون "falsy" قيم.
41+ - القيم الأخرى تصبح ` true ` , ولهذا يسمون "truthy".
4242
4343لذلك فإن الأوامر المكتوبة تحت هذا الشرط لن تنفذ أبدًا:
4444
@@ -59,7 +59,7 @@ if (1) { // 1 يكون truthy
5959يمكننا أيضًا تمرير قيمة منطقية مسبقة التنفيذ إلى ` if ` , مثل:
6060
6161``` js
62- let cond = (year == 2015 ); // معامل التساوي ينتج true أو false
62+ let cond = (year == 2015 ); // عامل التساوي ينتج true أو false
6363
6464if (cond) {
6565 ...
@@ -71,13 +71,14 @@ if (cond) {
7171عبارة ` if ` قد تحتوي على جزء "else" إختياري. يتم تنفيذها عندما يكون الشرط false.
7272
7373على سبيل المثال:
74+
7475``` js run
75- let year = prompt (' في أي عام تم نشر تخصيصات ECMAScript-2015?' , ' ' );
76+ let year = prompt (" في أي عام تم نشر تخصيصات ECMAScript-2015?" , " " );
7677
7778if (year == 2015 ) {
78- alert ( ' تخمينك صحيح!' );
79+ alert (" تخمينك صحيح!" );
7980} else {
80- alert ( ' كيف يمكنك أن تخطئ ؟' ); // any value except 2015
81+ alert (" كيف يمكنك أن تخطئ ؟" ); // any value except 2015
8182}
8283```
8384
@@ -88,22 +89,22 @@ if (year == 2015) {
8889على سبيل المثال:
8990
9091``` js run
91- let year = prompt (' في أي عام تم نشر تخصيصات ECMAScript-2015?' , ' ' );
92+ let year = prompt (" في أي عام تم نشر تخصيصات ECMAScript-2015?" , " " );
9293
9394if (year < 2015 ) {
94- alert ( ' مبكر جدًا' );
95+ alert (" مبكر جدًا" );
9596} else if (year > 2015 ) {
96- alert ( ' متأخر جدًا' );
97+ alert (" متأخر جدًا" );
9798} else {
98- alert ( ' تمامًا' );
99+ alert (" تمامًا" );
99100}
100101```
101102
102103في الكود السابق, تقوم الجافاسكربت أولًا بفحص ` year < 2015 ` . إذا كان خطأ, تنتقل للشرط التالي ` year > 2015 ` . إذا كان خطأ أيضًا تعرض آخر ` alert ` .
103104
104105يمكن أن يوجد العديد من ` else if ` . آخر ` else ` إختيارية.
105106
106- ## المعامل الشرطي '?'
107+ ## العامل الشرطي '?'
107108
108109أحيانا نريد تخصيص قيمة متغير بناءًا على شرط معين.
109110
@@ -124,11 +125,12 @@ if (age > 18) {
124125alert (accessAllowed);
125126```
126127
127- المعامل الشرطي أو معامل علامة الاستفهام يمكننا من فعل هذا في سطر بسيط.
128+ العامل الشرطي أو عامل علامة الاستفهام يمكننا من فعل هذا في سطر بسيط.
128129
129- يتم تمثيله بعلامة استفهام ` ? ` . أحيانا يسمى "ternary" لأن له 3 معاملات. وهو المعامل الوحيد في الجافاسكربت الذي له هذا العدد من المعاملات.
130+ يتم تمثيله بعلامة استفهام ` ? ` . أحيانا يسمى "ternary" لأن له 3 معاملات. وهو العامل الوحيد في الجافاسكربت الذي له هذا العدد من المعاملات.
130131
131132طريقة كتابته كالتالي:
133+
132134``` js
133135let result = condition ? value1 : value2;
134136```
@@ -138,23 +140,23 @@ let result = condition ? value1 : value2;
138140على سبيل المثال:
139141
140142``` js
141- let accessAllowed = ( age > 18 ) ? true : false ;
143+ let accessAllowed = age > 18 ? true : false ;
142144```
143145
144- يمكننا تجاهل الأقواس حول ` age > 18 ` . هذا المعامل لديه أولوية أقل ولهذا يتم تنفيذه بعد عملية المقارنة ` > ` .
146+ يمكننا تجاهل الأقواس حول ` age > 18 ` . هذا العامل لديه أولوية أقل ولهذا يتم تنفيذه بعد عملية المقارنة ` > ` .
145147
146148هذا المثال مطابق للمثال السابق:
147149
148150``` js
149- // معامل المقارنة "age > 18" ينفذ أولًا
151+ // عامل المقارنة "age > 18" ينفذ أولًا
150152// (لا حاجة لوضعة داخل أقواس)
151153let accessAllowed = age > 18 ? true : false ;
152154```
153155
154156لكن الأقواس تجعل الكود مقروء أكثر ولذلك ننصح باستخدامها
155157
156158```` smart
157- في المثال السابق يمكننا عدم استخدام المعامل الشرطي لأن عملية المقارنة ترجع `true/false`:
159+ في المثال السابق يمكننا عدم استخدام العامل الشرطي لأن عملية المقارنة ترجع `true/false`:
158160
159161```js
160162// مثل
@@ -167,15 +169,20 @@ let accessAllowed = age > 18;
167169تتابع ` ? ` يمكنه إرجاع قيمة تعتمد على أكثر من شرط.
168170
169171على سبيل المثال:
172+
170173``` js run
171- let age = prompt (' العمر؟' , 18 );
174+ let age = prompt (" العمر؟" , 18 );
172175
173- let message = (age < 3 ) ? ' مرحبًا يا صغيري!' :
174- (age < 18 ) ? ' أهلا!' :
175- (age < 100 ) ? ' تحياتي!' :
176- ' يا له من عمر غير عادي!' ;
176+ let message =
177+ age < 3
178+ ? " مرحبًا يا صغيري!"
179+ : age < 18
180+ ? " أهلا!"
181+ : age < 100
182+ ? " تحياتي!"
183+ : " يا له من عمر غير عادي!" ;
177184
178- alert ( message );
185+ alert (message);
179186```
180187
181188ربما يكون من الصعب معرفة ما يحدث ولكن إذا نظرنا عن قرب سنجد أنه مجرد تتابع لمجموعة إختبارات:
@@ -189,13 +196,13 @@ alert( message );
189196
190197``` js
191198if (age < 3 ) {
192- message = ' مرحبًا يا صغيري!' ;
199+ message = " مرحبًا يا صغيري!" ;
193200} else if (age < 18 ) {
194- message = ' أهلا!' ;
201+ message = " أهلا!" ;
195202} else if (age < 100 ) {
196- message = ' تحياتي!' ;
203+ message = " تحياتي!" ;
197204} else {
198- message = ' يا له من عمر غير عادي!' ;
205+ message = " يا له من عمر غير عادي!" ;
199206}
200207```
201208
@@ -216,7 +223,7 @@ let company = prompt('أي شركة أنشأت الجافاسكربت ؟', '');
216223
217224هنا لم نقم بتخصيص قيم مختلفة لمتغير بل قمنا بتنفيذ أوامر مختلفة اعتمادًا على الشرط
218225
219- ** لا ينصح باستخدام المعامل بهذه الطريقة.**
226+ ** لا ينصح باستخدام العامل بهذه الطريقة.**
220227
221228هذا التعبير مختصر عن عبارة ` if ` ولكنه أقل قراءة.
222229
0 commit comments