Skip to content

Commit 250f58e

Browse files
committed
Fix a part of conf
1 parent 94019fd commit 250f58e

15 files changed

Lines changed: 44 additions & 244 deletions

File tree

1-js/05-data-types/10-destructuring-assignment/article.md

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,14 @@
22

33
دو ساختار داده پر استفاده در جاوااسکریپت `Object` و `Array` هستند.
44

5-
<<<<<<< HEAD
65
- شیءها به ما این امکان را می‌دهند تا چیزی بسازیم که المان‌های داده را به واسطه کلید ذخیره کند.
76
- آرایه‌ها به ما امکان جمع‌آوری المان‌های داده را در لیستی مرتب می‌دهند.
8-
=======
9-
- Objects allow us to create a single entity that stores data items by key.
10-
- Arrays allow us to gather data items into an ordered list.
11-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
127

138
اگرچه، زمانی که ما آن‌ها را به تابع می‌دهیم، ممکن است که نیازی به کل یک شیء/آرایه نباشد. شاید تنها قطعه‌های تکی نیاز باشد.
149

1510
*مقداردهیِ تجزیه‌کننده‌ی ساختار (Destructuring assignment)* یک سینتکس خاص است که به ما امکان می‌دهد تا آرایه‌ها یا شیءها را درون چند متغیر «پخش کنیم» چون بعضی اوقات این موضوع کار را راحت‌تر می‌کند.
1611

17-
<<<<<<< HEAD
1812
تخریب ساختار همچنین با تابع‌های پیچیده که تعداد زیادی پارامتر، مقدارهای پیش‌فرض و... دارند هم به خوبی کار می‌کند. به زودی آن را خواهیم دید.
19-
=======
20-
*Destructuring assignment* is a special syntax that allows us to "unpack" arrays or objects into a bunch of variables, as sometimes that's more convenient.
21-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
2213

2314
## تجزیه ساختار آرایه
2415

@@ -85,21 +76,12 @@ alert( title ); // Consul
8576
let [a, b, c] = "abc"; // ["a", "b", "c"]
8677
let [one, two, three] = new Set([1, 2, 3]);
8778
```
88-
<<<<<<< HEAD
8979
این کار می‌کند چون از درون، یک مقداردهی تجزیه‌کننده‌ی ساختار با حلقه زدن در مقدار سمت راست کار می‌کند. برای فراخوانی `for..of` در مقدار سمت راست `=` و تخصیص دادن مقدارها، به نوعی خوش سینتکس است.
9080
````
9181

9282

9383
````smart header="در سمت چپ به هر چیزی تخصیص دهید"
9484
ما می‌توانیم از «قابل مقداردهی‌ها» در سمت چپ استفاده کنیم.
95-
=======
96-
That works, because internally a destructuring assignment works by iterating over the right value. It's a kind of syntax sugar for calling `for..of` over the value to the right of `=` and assigning the values.
97-
````
98-
99-
100-
````smart header="Assign to anything at the left-side"
101-
We can use any "assignables" on the left side.
102-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
10385
10486
برای مثال، یک ویژگی شیء:
10587
```js run
@@ -196,13 +178,7 @@ alert(rest.length); // 2
196178

197179
مقدار `rest` آرایه‌ای از المان‌های باقی مانده است.
198180

199-
<<<<<<< HEAD
200181
می‌توانیم از هر اسم دیگری به جای `rest` برای متغیر استفاده کنیم، فقط مطمئن شوید که قبل از آن سه نقطه وجود دارد و در انتهای مقداردهی تجزیه‌کننده‌ی ساختار قرار می‌گیرد.
201-
=======
202-
The value of `rest` is the array of the remaining array elements.
203-
204-
We can use any other variable name in place of `rest`, just make sure it has three dots before it and goes last in the destructuring assignment.
205-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
206182

207183
```js run
208184
let [name1, name2, *!*...titles*/!*] = ["Julius", "Caesar", "Consul", "of the Roman Republic"];
@@ -258,11 +234,7 @@ alert(surname); // دریافت کند prompt هر چیزی که
258234
let {var1, var2} = {var1:…, var2:…}
259235
```
260236

261-
<<<<<<< HEAD
262237
ما باید یک شیء موجود که می‌خواهیم آن را در چند متغیر پخش کنیم در سمت راست داشته باشیم. سمت چپ شامل یک «الگوی» شیء مانند برای ویژگی‌های متناظر می‌شود. در ساده‌ترین حالت، یک لیست از اسم‌های متغیر در `{...}` است.
263-
=======
264-
We should have an existing object on the right side, that we want to split into variables. The left side contains an object-like "pattern" for corresponding properties. In the simplest case, that's a list of variable names in `{...}`.
265-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
266238

267239
برای مثال:
268240

@@ -284,13 +256,7 @@ alert(height); // 200
284256

285257
ویژگی‌های `options.title`، `options.width` و `options.height` به متغیرهای متناظر تخصیص داده شده‌اند.
286258

287-
<<<<<<< HEAD
288259
ترتیب مهم نیست. اینگونه هم کار می‌کند:
289-
=======
290-
Properties `options.title`, `options.width` and `options.height` are assigned to the corresponding variables.
291-
292-
The order does not matter. This works too:
293-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
294260

295261
```js
296262
// تغییر دادیم let {...} ترتیب را در
@@ -454,11 +420,7 @@ alert( title ); // Menu
454420
455421
اگر یک شیء یا آرایه، شیء و آرایه‌های تودرتو دیگری را شامل شود، ما می‌توانیم از الگوری پیچیده‌تری در سمت چپ برای استخراج قسمت‌های عمیق‌تر استفاده کنیم.
456422
457-
<<<<<<< HEAD
458423
در کد زیر `options` یک شیء دیگری درون ویژگی `size` و یک آرایه درون ویژگی `items` دارد. الگوی سمت چپ مقداردهی ساختار یکسانی برای استخراج مقدار از آنها را دارد:
459-
=======
460-
In the code below `options` has another object in the property `size` and an array in the property `items`. The pattern on the left side of the assignment has the same structure to extract values from them:
461-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
462424
463425
```js run
464426
let options = {

1-js/05-data-types/11-date/article.md

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,10 @@
5757
`new Date(year, month, date, hours, minutes, seconds, ms)`
5858
: یک تاریخ با مؤلفه‎های داده شده در منطقه‌زمانی محلی می‌سازد. فقط دو آرگومان اول ضروری هستند.
5959

60-
<<<<<<< HEAD
61-
- پارامتر `year` باید حتما 4 رقم باشد: `2013` خوب است ولی `98` نه.
60+
- پارامتر `year` باید 4 رقم باشد: برای سازگاری، 2 رقم هم مورد قبول است و به صورت `19xx` فرض می‌شود، برای مثال `98` با `1998` یکسان است اما همیشه استفاده از 4 رقم پیشنهاد می‌شود.
6261
- شمارش پارامتر `month` از `0` (ژانویه) تا `11` (دسامبر) است.
6362
- پارامتر `date` در واقع روز ماه است، اگر وارد نشود `1` فرض می‌شود.
6463
- اگر `hours/minutes/seconds/ms` وارد نشوند،برای آنها `0` در نظر گرفته می‌شود.
65-
=======
66-
- The `year` should have 4 digits. For compatibility, 2 digits are also accepted and considered `19xx`, e.g. `98` is the same as `1998` here, but always using 4 digits is strongly encouraged.
67-
- The `month` count starts with `0` (Jan), up to `11` (Dec).
68-
- The `date` parameter is actually the day of month, if absent then `1` is assumed.
69-
- If `hours/minutes/seconds/ms` is absent, they are assumed to be equal `0`.
70-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
7164

7265
برای مثال:
7366

1-js/05-data-types/12-json/article.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,7 @@ alert(user); // {name: "John", age: 30}
2727

2828
## متد JSON.stringify
2929

30-
<<<<<<< HEAD
3130
[JSON](http://fa.wikipedia.org/wiki/جی%E2%80%8Cسان) (نشانه‌گذاری شیء جاوااسکریپت، جِی‌سان) یک فرمت کلی برای نمایش مقدارها و شیءها است. جِی‌سان در استاندارد [RFC 4627](http://tools.ietf.org/html/rfc4627) شرح داده شده است. در ابتدا برای جاوااسکریپت ساخته شد اما بسیاری از زبان‌های دیگر هم کتابخانه‌هایی برای بکاربردن آن دارند. پس هنگامی که سمت کاربر سایت از جاوااسکریپت و سمت سرور با زبان‌های Ruby/PHP/Java/یا هر چیز دیگر نوشته شده باشد، استفاده از جی‌سان برای رد و بدل کردن داده آسان است.
32-
=======
33-
The [JSON](https://en.wikipedia.org/wiki/JSON) (JavaScript Object Notation) is a general format to represent values and objects. It is described as in [RFC 4627](https://tools.ietf.org/html/rfc4627) standard. Initially it was made for JavaScript, but many other languages have libraries to handle it as well. So it's easy to use JSON for data exchange when the client uses JavaScript and the server is written on Ruby/PHP/Java/Whatever.
34-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
3531

3632
جاوااسکریپت متدهای زیر را دارد:
3733

1-js/06-advanced-functions/01-recursion/article.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -535,11 +535,7 @@ list.next = list.next.next;
535535
list = { value, next -> list }
536536
```
537537

538-
<<<<<<< HEAD
539-
درخت‌ها مانند المان‌های HTML یا درخت بخش اداری در این فصل هم به طور طبیعی بازگشتی هستند: آنها شاخه‌شاخه می‌شوند و هر شاخه می‌تواند شاخه‌های دیگر هم داشته باشد.
540-
=======
541-
Trees like HTML elements tree or the department tree from this chapter are also naturally recursive: they have branches and every branch can have other branches.
542-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
538+
درخت‌ها مانند المان‌های HTML یا درخت بخش اداری در این فصل هم به طور طبیعی بازگشتی هستند: آنها شاخه‌‌هایی دارند و هر شاخه می‌تواند شاخه‌های دیگر هم داشته باشد.
543539

544540
همانطور که در مثال `sumSalary` دیدیم تابع‌های بازگشتی می‌توانند برای پیمایش درون آنها استفاده شوند.
545541

1-js/06-advanced-functions/03-closure/5-function-in-if/task.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11
importance: 5
22

3-
<<<<<<< HEAD
4-
# تابعی درون if
5-
=======
63
---
7-
# Function in if
8-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
4+
# تابعی درون if
95

106
به کد زیر نگاه بیاندازید. نتیجه فراخوانی در خط اخر چه چیزی خواهد بود؟
117

1-js/06-advanced-functions/03-closure/article.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@
77

88
اما اگر متغیرهای بیرونی از زمانی که یک تابع ساخته شد تغییر کنند چه اتفاقی می‌افتد؟ آیا تابع مقدارهای جدید را دریافت می‌کند یا قدیمی‌ها را؟
99

10-
<<<<<<< HEAD
1110
و اگر یک تابع به عنوان یک پارامتر رد و بدل شود و جای دیگری از کد فراخوانی شود، آیا به متغیرهای بیرونی در جای جدید دسترسی پیدا می‌کند؟
12-
=======
13-
And what if a function is passed along as an argument and called from another place of code, will it get access to outer variables at the new place?
14-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
1511

1612
بیایید دانش خود را گسترده‌تر کنیم تا این سناریوها و پیچیده‌تر از اینها را درک کنیم.
1713

1-js/06-advanced-functions/05-global-object/article.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,7 @@ var gVar = 5;
2525
alert(window.gVar); // 5 (به یک ویژگی از شیء گلوبال تبدیل شد)
2626
```
2727

28-
<<<<<<< HEAD
29-
اعلان تابع (عبارات دارای کلمه کلیدی `تابع` در جریان کد اصلی، نه عبارات تابع) نیز همین تأثیر را دارد.
30-
=======
31-
Function declarations have the same effect (statements with `function` keyword in the main code flow, not function expressions).
32-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
28+
Function declarationها (عبارات دارای کلمه کلیدی `function` در جریان کد اصلی، نه Function expressionها) نیز همین تأثیر را دارد.
3329

3430
لطفا به آن تکیه نکنید! این رفتار به دلایل سازگاری وجود دارد. اسکریپت‌های مدرن از [ماژول‌های جاوا‌اسکریپت](info:modules) در مواردی که چنین چیزی اتفاق نمی‌افتد استفاده می‌کنند.
3531

1-js/06-advanced-functions/06-function-object/article.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -325,11 +325,7 @@ welcome(); // (فراخوانی تودرتو کار می‌کند) Guest ،سل
325325

326326
حالا کار می‌کند چون اسم `"func"` یک تابع محلی است. این اسم از بیرون دریافت نمی‌شود (و آنجا هم قابل رویت نیست). مشخصات زبان تضمین می‌کند که این اسم همیشه به تابع کنونی رجوع می‌کند.
327327

328-
<<<<<<< HEAD
329-
کد بیرونی هنوز هم متغیر `sayHi` یا `welcome` خود را دارد. و `func` یک «اسم تابع درونی» است، جوری که تابع می‌توانند از درون خودش را فراخوانی کند.
330-
=======
331-
The outer code still has its variable `sayHi` or `welcome`. And `func` is an "internal function name", the way for the function to can call itself reliably.
332-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
328+
کد بیرونی هنوز هم متغیر `sayHi` یا `welcome` خود را دارد. و `func` یک «اسم درونی تابع» است، جوری که تابع می‌توانند از درون خودش را فراخوانی کند.
333329

334330
```smart header="چنین چیزی برای Function Declaration وجود ندارد"
335331
خصوصیت «اسم درونی» که اینجا توضیح داده شد فقط برای Function Expessionها قابل استفاده است نه برای Function Declarationها. برای Function Declarationها، سینتکسی برای اضاف کردن اسم «درونی» وجود ندارد.

1-js/06-advanced-functions/08-settimeout-setinterval/article.md

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -232,11 +232,7 @@ setTimeout(function() {...}, 100);
232232
233233
برای `setInterval` تابع تا زمانی که `clearInterval` فراخوانی شود درون حافظه می‌ماند.
234234
235-
<<<<<<< HEAD
236235
یک عارضه جانبی وجود دارد. یک تابع به محیط لغوی بیرونی رجوع می‌کند پس، تا زمانی که تابع وجود داشته باشد، متغیرهای بیرونی هم وجود خواهند داشت. آنها حافظه بسیار بیشتری را نسبت به خود تابع اشغال می‌کنند. پس زمانی که دیگر نیازی به تابع زمان‌بندی شده نداریم، بهتر است که آن را لغو کنیم حتی اگر خیلی کوچک باشد.
237-
=======
238-
There's a side effect. A function references the outer lexical environment, so, while it lives, outer variables live too. They may take much more memory than the function itself. So when we don't need the scheduled function anymore, it's better to cancel it, even if it's very small.
239-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
240236
````
241237

242238
## تابع setTimeout بدون تاخیر
@@ -298,16 +294,9 @@ setTimeout(function run() {
298294

299295
لطفا در نظر داشته باشید که روش‌های زمان‌بندی فاصله زمانی دقیق را *تضمین* نمی‌کنند.
300296

301-
<<<<<<< HEAD
302297
برای مثال، تایمر درون مرورگر ممکن است به دلایل زیادی کند شود:
303298
- کارهای زیادی به پردازنده سپرده شده است.
304299
- تب (tab) مرورگر در حالت پس‌زمینه است.
305-
- لپ تاپ در حال استفاده از باتری است.
306-
=======
307-
For example, the in-browser timer may slow down for a lot of reasons:
308-
- The CPU is overloaded.
309-
- The browser tab is in the background mode.
310-
- The laptop is on battery saving mode.
311-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
300+
- لپ تاپ در حالت صرفه‌جویی باتری است.
312301

313302
All that may increase the minimal timer resolution (the minimal delay) to 300ms or even 1000ms depending on the browser and OS-level performance settings.

1-js/06-advanced-functions/09-call-apply-decorators/04-throttle/task.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,9 @@ importance: 5
88

99
زمانی که چند بار فراخوانی شد، فقط یک بار به ازای هر `ms` میلی‌ثانیه `f` را فرا می‌خواند.
1010

11-
<<<<<<< HEAD
1211
تفاوت این تابع با معلق‌کننده این است که کاملا یک دکوراتور متفاوت است:
1312
- `debounce` تابع را بعد از مدت «آرام‌شدن» اجرا می‌کند. برای پردازش نتیجه نهایی خوب است.
1413
- `throttle` هر بار بعد از گذشت `ms` میلی‌ثانیه تابع را اجرا می‌کند. برای بروزرسانی‌های منظم که نباید زیاد انجام شوند خوب است.
15-
=======
16-
Compared to the debounce decorator, the behavior is completely different:
17-
- `debounce` runs the function once after the "cooldown" period. Good for processing the final result.
18-
- `throttle` runs it not more often than given `ms` time. Good for regular updates that shouldn't be very often.
19-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
2014

2115
به عبارتی دیگر، `throttle` مانند یک منشی است که تماس‌های تلفنی را می‌پذیرد اما پس از `ms` میلی‌ثانیه فقط یک بار مزاحم رئیس می‌شود (تابع واقعی `f` را فراخوانی می‌کند).
2216

0 commit comments

Comments
 (0)