Skip to content

Commit 97c3162

Browse files
committed
Fix a part of conflicts
1 parent e8aec7c commit 97c3162

6 files changed

Lines changed: 27 additions & 105 deletions

File tree

1-js/02-first-steps/12-nullish-coalescing-operator/article.md

Lines changed: 5 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,9 @@ result = (a !== null && a !== undefined) ? a : b;
2222

2323
حال باید کاملا روشن باشد که `??` چه کاری انجام می‌دهد. بیایید ببینیم این عملگر کجا کمک‌مان می‌کند.
2424

25-
<<<<<<< HEAD
26-
یک مورد متداول برای استفاده از `??` تعیین کردن مقداری پیش فرض برای متغیری است که شاید تعریف نشده باشد.
25+
یک مورد متداول برای استفاده از `??` تعیین کردن مقداری پیش‌فرض برای متغیر است.
2726

28-
برای مثال، اینجا نشان می‌دهیم که `user` تعریف شده است، در غیر این صورت `Anonymous` است:
29-
=======
30-
The common use case for `??` is to provide a default value.
31-
32-
For example, here we show `user` if its value isn't `null/undefined`, otherwise `Anonymous`:
33-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
27+
برای مثال، اینجا اگر مقدار `user` برابر با `null/undefined` نباشد آن را نشان می‌دهیم، در غیر این صورت `Anonymous` نشان داده می‌شود:
3428

3529
```js run
3630
let user;
@@ -48,15 +42,9 @@ alert(user ?? "Anonymous"); // John (user defined)
4842
4943
همچنین می‌توانیم از دنباله‌ی `??` برای انتخاب کردن اولین مقدار در یک لیست که `null/undefined` نباشد استفاده کنیم.
5044
51-
<<<<<<< HEAD
5245
فرض کنیم که داده‌ی کاربری را در متغیرهای `firstName`، `lastName` یا `nickName` ذخیره کرده‌ایم. اگر کاربر تصمیم به وارد نکردن مقداری گرفته باشد، ممکن است همه آنها تعریف شده نباشند.
5346
54-
ما می‌خواهیم اسم کاربر را با استفاده از این متغیرها نمایش دهیم، یا اگر هیچ کدام تعریف شده نباشند "Anonymous" را نمایش دهیم.
55-
=======
56-
Let's say we have a user's data in variables `firstName`, `lastName` or `nickName`. All of them may be not defined, if the user decided not to fill in the corresponding values.
57-
58-
We'd like to display the user name using one of these variables, or show "Anonymous" if all of them are `null/undefined`.
59-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
47+
ما می‌خواهیم اسم کاربر را با استفاده از این متغیرها نمایش دهیم، یا اگر همه آن‌ها `null/undefined` باشند، "Anonymous" را نمایش دهیم.
6048
6149
بیایید برای این کار از عملگر `??` استفاده کنیم:
6250
@@ -122,11 +110,7 @@ alert(height ?? 100); // 0
122110
123111
این یعنی که درست مانند `||`، عملگر nullish coalescing `??` قبل از `=` و `?` ارزیابی می‌شود، اما بعد از بیشتر عملیات‌ها مانند `+`، `-` ارزیابی می‌شود.
124112
125-
<<<<<<< HEAD
126-
پس اگر بخواهیم مقداری را با استفاده از `??` در یک عبارت که عملگرهای دیگر هم وجود دارند انتخاب کنیم، باید اضافه کردن پرانتز را در نظر بگیریم:
127-
=======
128-
So we may need to add parentheses in expressions like this:
129-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
113+
پس شاید ما نیاز داشته باشیم که در عباراتی مانند کد پایین پرانتزها را اضافه کنیم:
130114
131115
```js run
132116
let height = null;
@@ -144,11 +128,7 @@ alert(area); // 5000
144128
// بدون پرانتز
145129
let area = height ?? 100 * width ?? 50;
146130

147-
<<<<<<< HEAD
148-
// ...عبارت بالا مثل عبارت پایین عمل می‌کند (که احتمالا چیزی نیست که ما بخواهیم)
149-
=======
150-
// ...works this way (not what we want):
151-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
131+
// اینگونه کار می‌کند (احتمالا چیزی که ما می‌خوانیم نیست)...
152132
let area = height ?? (100 * width) ?? 50;
153133
```
154134

1-js/02-first-steps/13-while-for/article.md

Lines changed: 8 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,21 @@
66

77
*حلقه ها* راهی برای تکرار یک کد برای چندین بار هستند.
88

9-
<<<<<<< HEAD
109
## حلقه "while"
11-
=======
12-
```smart header="The for..of and for..in loops"
13-
A small announcement for advanced readers.
10+
```smart header="حلقه‌های for..of و for..in"
11+
اعلانی برای خواننده‌های پیشرفته.
1412
1513
This article covers only basic loops: `while`, `do..while` and `for(..;..;..)`.
14+
این مقاله تنها حلقه‌های پایه‌ای را پوشش می‌دهد: `while`، `do..while` و `for(..;..;..)`.
1615
17-
If you came to this article searching for other types of loops, here are the pointers:
16+
اگر شما برای جستجوی انواع دیگر حلقه به این مقاله آمده‌اید، اینجا اشاراتی به آن‌ها را داریم:
1817
19-
- See [for..in](info:object#forin) to loop over object properties.
20-
- See [for..of](info:array#loops) and [iterables](info:iterable) for looping over arrays and iterable objects.
18+
- حلقه [for..in](info:object#forin) را برای حلقه زدن در ویژگی‌های شیء ببینید.
19+
- حلقه [for..of](info:array#loops) و [iterables](info:iterable) را برای حلقه زدن در آرایه‌ها و شیءهای حلقه‌پذیر ببینید.
2120
22-
Otherwise, please read on.
21+
در غیر این صورت، لطفا خواندن را ادامه دهید.
2322
```
2423

25-
## The "while" loop
26-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
27-
2824
حلقه `while` سینتکس زیر را دارد:
2925

3026
```js
@@ -181,12 +177,8 @@ alert(i); // 3، قابل دیدن است، چون بیرون از حلقه تع
181177
```
182178
````
183179

184-
<<<<<<< HEAD
185180

186181
### قسمت های قابل جا انداختن
187-
=======
188-
### Skipping parts
189-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
190182

191183
هر قسمت `for` را می توان از قلم انداخت.
192184

@@ -288,11 +280,7 @@ for (let i = 0; i < 10; i++) {
288280

289281
از دیدگاه فنی، این شبیه مثال بالا است. مسلما، ما می توانیم کد را داخل یک بلوک `if` بگذاریم به جای اینکه از `continue` استفاده کنیم.
290282

291-
<<<<<<< HEAD
292-
اما به عنوان یک عارضه جانبی، یک سطح بیشتری از تو در تویی می سازد (صدا زدن `alert` داخل آکولادها). اگر کد داخل `if` بیشتر از چند خط باشد، ممکن است خوانایی کلی را کاهش دهد.
293-
=======
294-
But as a side effect, this created one more level of nesting (the `alert` call inside the curly braces). If the code inside of `if` is longer than a few lines, that may decrease the overall readability.
295-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
283+
اما به عنوان یک عارضه جانبی، یک سطح بیشتری از تودرتویی می سازد (صدا زدن `alert` داخل آکولادها). اگر کد داخل `if` بیشتر از چند خط باشد، ممکن است خوانایی کلی را کاهش دهد.
296284
````
297285
298286
````warn header="ممنوعیت `break/continue` در سمت راست '?'"
@@ -343,12 +331,7 @@ alert('تمام!');
343331

344332
`break` معمولی بعد از `input` فقط حلقه داخلی را متوقف می کند. این کافی نیست -- برچسب ها، به کمک می آیند!
345333

346-
<<<<<<< HEAD
347334
یک *برچسب* مشخص کننده ای است که قبل از یک حلقه همراه دو نقطه می آید:
348-
=======
349-
A *label* is an identifier with a colon before a loop:
350-
351-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
352335
```js
353336
labelName: for (...) {
354337
...
@@ -370,12 +353,7 @@ labelName: for (...) {
370353
// یک کاری با مقدار انجام بده...
371354
}
372355
}
373-
<<<<<<< HEAD
374356
alert('تمام!');
375-
=======
376-
377-
alert('Done!');
378-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
379357
```
380358

381359
در کد بالا، `break outer` برای پیدا کردن برچسب `outer` بالا را جست و جو می کند و از آن حلقه خارج می شود.
@@ -394,24 +372,14 @@ for (let i = 0; i < 3; i++) { ... }
394372
````warn header="برچسب ها اجازه \"پرش\" به جایی را نمی دهند"
395373
برچسب ها به ما اجازه نمی دهند که به جای دلخواهی از کد بپریم.
396374
397-
<<<<<<< HEAD
398375
برای مثال، انجام دادن این کار غیر ممکن است:
399-
=======
400-
For example, it is impossible to do this:
401-
402-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
403376
```js
404377
break label; // پرش به برچسب پایین (کار نمی کند)
405378
406379
label: for (...)
407380
```
408381
409-
<<<<<<< HEAD
410382
یک دستور `break` باید در داخل بلوک کد باشد. از نظر فنی، آن بلوک می تواند هر بلوک کد برچسب زده باشد
411-
=======
412-
A `break` directive must be inside a code block. Technically, any labelled code block will do, e.g.:
413-
414-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
415383
```js
416384
label: {
417385
// ...

1-js/02-first-steps/14-switch/article.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -141,11 +141,7 @@ switch (a) {
141141
142142
حالا `3` و `5` پیام یکسانی نمایش می‌دهند.
143143
144-
<<<<<<< HEAD
145-
این توانایی که می‌توان caseهای مختلف را گروه‌بندی کرد، به این خاطر است که `switch/case` بدون `break` کار می‌کند. اینجا اجرای کد `case 3` از خط `(*)` شروع می‌شود و تا خط `case 5` ادامه پیدا می‌کند. چرا که هیچ `break` وجود ندارد.
146-
=======
147-
The ability to "group" cases is a side effect of how `switch/case` works without `break`. Here the execution of `case 3` starts from the line `(*)` and goes through `case 5`, because there's no `break`.
148-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
144+
این توانایی که می‌توان caseهای مختلف را گروه‌بندی کرد، به این خاطر است که `switch/case` بدون چگونه `break` کار می‌کند. اینجا اجرای کد `case 3` از خط `(*)` شروع می‌شود و تا خط `case 5` ادامه پیدا می‌کند. چرا که هیچ `break` وجود ندارد.
149145
150146
## نوع داده Type مهم است
151147
Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,3 @@
1-
<<<<<<< HEAD
21
فرقی ندارد.
3-
=======
4-
No difference!
52

6-
In both cases, `return confirm('Did parents allow you?')` executes exactly when the `if` condition is falsy.
7-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
3+
در هر دو مورد، `return confirm('Did parents allow you?')` دقیقا زمانی که شرط `if` برابر falsy باشد اجرا می‌شود.

1-js/02-first-steps/15-function-basics/article.md

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,8 @@ alert( from ); // Ann
176176
177177
به عبارتی دیگر، بگذارید این مقررات را تعیین کنیم:
178178
179-
<<<<<<< HEAD
180-
- یک پارامتر یک متغیر لیست شده درون پرانتز‌های تعریف تابع (در زمان تعریف تابع) است.
181-
- یک آرگومان مقداری‌ست که به تابع موقع صدازدن آن پاس داده شده است.
182-
=======
183-
- A parameter is the variable listed inside the parentheses in the function declaration (it's a declaration time term).
184-
- An argument is the value that is passed to the function when it is called (it's a call time term).
185-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
179+
- یک پارامتر یک متغیر لیست شده درون پرانتز‌های تعریف تابع است (یک عبارت مخصوص زمان تعریف).
180+
- یک آرگومان مقداری‌ست که به تابع موقع صدازدن آن پاس داده شده است (یک عبارت مخصوص زمان فراخوانی).
186181
187182
ما توابع را با پارامترهای‌شان تعریف می‌کنیم، و سپس آن‌ها را با آرگومان‌هایشان صدا می‌زنیم.
188183
@@ -230,43 +225,39 @@ function showMessage(from, text = anotherFunction()) {
230225
از سوی دیگر، این به طور مستقل فراخوانی می‌شود وقتی `text` وجود نداشته باشد.
231226
```
232227
233-
<<<<<<< HEAD
234228
### پارامترهای پیش‌فرض جایگزین
235-
=======
236-
````smart header="Default parameters in old JavaScript code"
237-
Several years ago, JavaScript didn't support the syntax for default parameters. So people used other ways to specify them.
229+
````smart header="پارامترهای پیش‌فرض در کد جاوااسکریپت قدیمی"
230+
چند سال پیش، جاوااسکریپت از سینتکس برای پارامترهای پیش‌فرض پشتیبانی نمی‌کرد. پس افراد از روش‌های دیگر برای تعیین آن‌ها استفاده می‌کردند.
238231
239-
Nowadays, we can come across them in old scripts.
232+
امروزه، در اسکریپت‌های قدیمی می‌توانیم با آن‌ها برخورد داشته باشیم.
240233
241-
For example, an explicit check for `undefined`:
234+
برای مثال، یک بررسی ضمنی برای `undefined`:
242235
243236
```js
244237
function showMessage(from, text) {
245238
*!*
246239
if (text === undefined) {
247-
text = 'no text given';
240+
text = 'متنی داده نشده';
248241
}
249242
*/!*
250243
251244
alert( from + ": " + text );
252245
}
253246
```
254247
255-
...Or using the `||` operator:
248+
...یا استفاده از عمگر `||`:
256249
257250
```js
258251
function showMessage(from, text) {
259-
// If the value of text is falsy, assign the default value
260-
// this assumes that text == "" is the same as no text at all
261-
text = text || 'no text given';
252+
// بود، مقدار پیش‌فرض را تخصیص بده falsy از نوع text اگر مقدار
253+
// با وجود نداشتن متن یکسان است text == "" این یعنی
254+
text = text || 'متنی داده نشده';
262255
...
263256
}
264257
```
265258
````
266259
267260
268-
### Alternative default parameters
269-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
270261
271262
گاهی اوقات این منطقی است که مقدارهای پیش‌فرض پارامترها را در تعریف تابع قرار ندهیم بلکه در مرحله بعدی یعنی حین اجرا شدن آن قرار دهیم.
272263
@@ -531,11 +522,7 @@ function name(parameters, delimited, by, comma) {
531522
532523
برای قابل فهم و تمیز بودن کد، توصیه می‌شود از متغیرهای محلی و پارامترهای تابع را استفاده کنیم تا متغیرهای بیرونی.
533524
534-
<<<<<<< HEAD
535-
فهم اینکه یک تابع پارامترها را می‌گیرد و با آنها کار می‌کند و سپس یک خروجی می‌دهد همیشه ساده‌تر است تا اینکه یک تابع که هیچ پارامتری نمی‌گیرد اما متغیرهای بیرونی را تغییر می‌دهد.
536-
=======
537-
It is always easier to understand a function which gets parameters, works with them and returns a result than a function which gets no parameters, but modifies outer variables as a side effect.
538-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
525+
فهم یک تابع که پارامترهایی را می‌گیرد و با آن‌ها کار می‌کند و سپس یک خروجی می‌دهد همیشه ساده‌تر است تا یک تابع که هیچ پارامتری نمی‌گیرد اما متغیرهای بیرونی را تغییر می‌دهد.
539526
540527
نامگذاری تابع:
541528

1-js/02-first-steps/16-function-expressions/article.md

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,8 @@ let func = sayHi;
8989
همه چیز به همان شکل کار خواهد کرد.
9090

9191

92-
<<<<<<< HEAD
9392
````smart header="چرا یک نقطه ویرگول در انتها وجود دارد؟"
9493
شاید برای شما سوال باشد، چرا Function Expression در انتها نقطه ویرگول `;` دارد، اما Function Declaration ندارد:
95-
=======
96-
````smart header="Why is there a semicolon at the end?"
97-
You might wonder, why do Function Expressions have a semicolon `;` at the end, but Function Declarations do not:
98-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
9994
10095
```js
10196
function sayHi() {

0 commit comments

Comments
 (0)