You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: 1-js/02-first-steps/08-operators/3-primitive-conversions-questions/solution.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -15,9 +15,9 @@ null + 1 = 1 // (5)
15
15
undefined+1=NaN// (6)
16
16
"\t\n"-2=-2// (7)
17
17
```
18
-
1. علامت جمع همراه با string`"" + 1` عدد `1` را به string تبدیل میکند: `"" + 1 = "1"` ، و سپس داریم: `"1" + 0` که همین قاعده برای آن نیز برقرار خواهد بود.
19
-
2. علامت تفریق (مانند اکثر عملگرهای ریاضیاتی) فقط با اعداد کار میکند. این عملگر string خالی را به `0` تبدیل میکند.
20
-
3. علامت جمع به همراه string ، باعث تبدیل عدد `5` به string و سپس چسباندن آن بهم میشود.
18
+
1. علامت جمع همراه با رشته`"" + 1` عدد `1` را به رشته تبدیل میکند: `"" + 1 = "1"` ، و سپس داریم: `"1" + 0` که همین قاعده برای آن نیز برقرار خواهد بود.
19
+
2. علامت تفریق (مانند اکثر عملگرهای ریاضیاتی) فقط با اعداد کار میکند. این عملگر رشته خالی را به `0` تبدیل میکند.
20
+
3. علامت جمع به همراه رشته ، باعث تبدیل عدد `5` به رشته و سپس چسباندن آن بهم میشود.
21
21
4. علامت تفریق همیشه مقدار را به عدد تبدیل میکند. در نتیجه `" -9 "` را به عدد `–9` تبدیل میکند (فاصلههای خالی را نیز حذف میکند).
- یک عملگر زمانی binary است که دو عملوند داشته باشد. همان عملگر منفی کننده در شکل دوگانه هم وجود دارد:
22
+
- یک عملگر زمانی binary است که دو عملوند داشته باشد. همان عملگر منفی کننده در شکل دوگانه هم وجود دارد:
23
23
24
24
```js run no-beautify
25
25
let x = 1, y = 3;
26
26
alert( y - x ); // 2، عملگر دوگانه منفی که مقدارها را کم میکند
27
27
```
28
28
29
-
در اصل در اینجا ما در مورد دو عملگر مجزا که نماد یکسانی دارند صحبت کردیم: اولی عملگر یگانه منفی کننده که علامت عدد را برعکس میکرد و دیگری عملگر دوگانه تفریق که یک عدد را از دیگری کم میکرد.
29
+
در اصل در مثالهای بالا دو عملگر مجزا داریم که نماد یکسانی دارند: اولی عملگر یگانه منفی کننده که علامت عدد را برعکس میکرد و دیگری عملگر دوگانه تفریق که یک عدد را از دیگری کم میکرد.
30
30
31
31
## ریاضیات
32
32
@@ -105,13 +105,13 @@ alert( 2 + '1' ); // "21"
105
105
یک مثال پیچیدهتر:
106
106
107
107
```js run
108
-
alert(2 + 2 + '1' ); // "41" and not "221"
108
+
alert(2 + 2 + '1' ); // "نتیجه "41" میشود نه "221
109
109
```
110
110
111
111
اینجا، عملگرها یکی پس از دیگری کار میکنند. اولین `+` دو عدد را جمع میکند، پس `4` را برمیگرداند، سپس `+` دوم رشتهی `1` را به آن اضافه میکند، پس مثل این است که بنویسیم `'41' = '1' + 4`.
112
112
113
113
```js run
114
-
alert('1' + 2 + 2); // "122" and not "14"
114
+
alert('1' + 2 + 2); // "نتیجه "122" میشود نه "14
115
115
```
116
116
اینجا، اولین عملوند یک string است، کامپایلر با دو عملوند دیگر هم مانند string رفتار میکند. `2` با `'1'` ادغام میشود، پس مانند این است که بنویسیم `"12" = 2 + '1'` و سپس `"122" = 2 + "12"`.
117
117
@@ -157,7 +157,7 @@ alert( +"" ); // 0
157
157
let apples = "2";
158
158
let oranges = "3";
159
159
160
-
alert( apples + oranges ); // "23", عملگر + دوگانه رشتهها را ادغام میکند
160
+
alert( apples + oranges ); // "23" ،عملگر + دوگانه رشتهها را ادغام میکند
161
161
```
162
162
163
163
اگر خواستیم با آنها مانند عدد برخورد کنیم، باید آنها را به عدد تبدیل کرده و سپس آنها را جمع میکنیم:
@@ -290,8 +290,8 @@ n = n * 2;
290
290
291
291
```js run
292
292
let n = 2;
293
-
n += 5; // now n = 7 (same as n = n + 5)
294
-
n *= 2; // now n = 14 (same as n = n * 2)
293
+
n += 5; // (یکسان است n = n + 5 با) است n = 7 حالا
294
+
n *= 2; // (یکسان است n = n * 2 با) است n = 14 حالا
295
295
296
296
alert( n ); // 14
297
297
```
@@ -305,7 +305,7 @@ let n = 2;
305
305
306
306
n *= 3 + 5;
307
307
308
-
alert( n ); // 16 (right part evaluated first, same as n *= 8)
308
+
alert( n ); // 16 (یکسان است n *= 8، قسمت سمت راست اول ارزیابی میشود)
309
309
```
310
310
311
311
## عملگر افزایش/کاهش
@@ -320,14 +320,14 @@ alert( n ); // 16 (right part evaluated first, same as n *= 8)
320
320
321
321
```js run no-beautify
322
322
let counter = 2;
323
-
counter++; // works the same as counter = counter + 1, but is shorter
323
+
counter++; // عمل میکند اما کوتاهتر است counter = counter + 1 درست مانند
324
324
alert( counter ); // 3
325
325
```
326
326
- **عملگر کاهش** `--` که یک واحد از عدد کم میکند:
327
327
328
328
```js run no-beautify
329
329
let counter = 2;
330
-
counter--; // works the same as counter = counter - 1, but is shorter
330
+
counter--; // عمل میکند اما کوتاهتر است counter = counter - 1 درست مانند
331
331
alert( counter ); // 1
332
332
```
333
333
@@ -361,7 +361,7 @@ alert(a); // *!*2*/!*
361
361
362
362
```js run
363
363
let counter = 1;
364
-
let a = counter++; // (*) changed ++counter to counter++
364
+
let a = counter++; // (*) تغییر دادیم counter++ را به ++counter
365
365
366
366
alert(a); // *!*1*/!*
367
367
```
@@ -376,7 +376,7 @@ alert(a); // *!*1*/!*
376
376
let counter = 0;
377
377
counter++;
378
378
++counter;
379
-
alert( counter ); // 2، خطوط بالا کار مشابهی انجام دادند
379
+
alert( counter ); // 2 ،خطوط بالا کار مشابهی انجام دادند
380
380
```
381
381
- اگر میخواهیم مقداری را افزایش داده *و* بلافاصله از نتیجه عملگر استفاده نماییم، باید از شکل پیشوندی استفاده کنیم:
382
382
@@ -405,7 +405,7 @@ alert( 2 * ++counter ); // 4
405
405
406
406
```js run
407
407
let counter = 1;
408
-
alert( 2 * counter++ ); // 2, because counter++ returns the "old" value
408
+
alert( 2 * counter++ ); // 2 ،مقدار «قدیمی» را برمیگرداند counter++ چون
409
409
```
410
410
411
411
با اینکه از نظر فنی مشکلی ندارد ولی چنین روشی خوانایی کد را کاهش میدهد. اینکه یک خط کارهای مختلفی انجام میدهد مناسب نیست.
@@ -452,7 +452,7 @@ counter++;
452
452
let a = (1 + 2, 3 + 4);
453
453
*/!*
454
454
455
-
alert( a ); // 7 (the result of 3 + 4)
455
+
alert( a ); // 7 (3 + 4 نتیجهی)
456
456
```
457
457
458
458
اولین عبارت `2 + 1` محاسبه میشود و جوابش دور ریخته میشود. سپس، `4 + 3` محاسبه میشود و به عنوان نتیجه بازگردانده میشود.
0 commit comments