Skip to content

Commit ba7b419

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

7 files changed

Lines changed: 23 additions & 180 deletions

File tree

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

Lines changed: 3 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -144,21 +144,13 @@ function showCancel() {
144144
ask("آیا موافق هستید؟", showOk, showCancel);
145145
```
146146

147-
<<<<<<< HEAD
148-
در عمل، چنین تابع هایی بسیار مفید هستند. تفاوت اصلی بین یک `ask` در زندگی واقعی و مثال بالا در این است که تابع‌ها در زندگی واقعی از راه‌های پیچیده‌تری نسبت به یک `confirm` ساده برای تعامل با کاربر استفاده استفاده می کنند. در مرورگر، چنین تابع‌هایی معمولا یک پنچره سوال زیبا را طرح می‌کنند. اما آن یک داستان دیگر است.
149-
=======
150-
In practice, such functions are quite useful. The major difference between a real-life `ask` and the example above is that real-life functions use more complex ways to interact with the user than a simple `confirm`. In the browser, such functions usually draw a nice-looking question window. But that's another story.
151-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
147+
در عمل، چنین تابع هایی بسیار مفید هستند. تفاوت اصلی بین یک `ask` در زندگی واقعی و مثال بالا در این است که تابع‌ها در زندگی واقعی از راه‌های پیچیده‌تری نسبت به یک `confirm` ساده برای تعامل با کاربر استفاده می‌کنند. در مرورگر، چنین تابع‌هایی معمولا یک پنچره پرسش زیبا را ایجاد می‌کنند. اما آن یک داستان دیگر است.
152148

153149
**آرگومان‌های `showOk` و `showCancel` داخل `ask` *callback functions* یا فقط *callbacks* نامیده می‌شوند.**
154150

155151
ایده اینطور است که ما یک تابع را می‌دهیم و از آن توقع داریم که بعدا اگر نیاز شد "دوباره صدا زده شود". در مورد ما، `showOk` تبدیل به callback برای جواب "yes" می‌شود، و `showCancel` برای چواب "no".
156152

157-
<<<<<<< HEAD
158-
ما می توانیم از Function Expressions برای نوشتن بسیار کوتاه‌تر همان تابع استفاده کنیم:
159-
=======
160-
We can use Function Expressions to write an equivalent, shorter function:
161-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
153+
ما می توانیم از Function Expressions برای نوشتن همان تابع به صورت بسیار کوتاه‌تر استفاده کنیم:
162154

163155
```js run no-beautify
164156
function ask(question, yes, no) {
@@ -194,23 +186,15 @@ ask(
194186

195187
اول، سینتکس: چگونه داخل کد بین آنها فرق قائل شویم.
196188

197-
<<<<<<< HEAD
198-
- *Function Declaration:* یک تابع است، که به عنوان یک دستور جدا، در کد اصلی تعریف می‎شود.
199-
=======
200-
- *Function Declaration:* a function, declared as a separate statement, in the main code flow:
201-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
189+
- *Function Declaration:* یک تابع است، که به عنوان یک دستور جدا، در کد اصلی تعریف می‌شود.
202190

203191
```js
204192
// Function Declaration
205193
function sum(a, b) {
206194
return a + b;
207195
}
208196
```
209-
<<<<<<< HEAD
210197
- *Function Expression:* یک تابع است، که در داخل یک عبارت یا داخل یک ساختار سینتکس دیگر ساخته می‌شود. اینجا، تابع سمت راست "عبارت تخصیص دادن" `=` ساخته شده است.
211-
=======
212-
- *Function Expression:* a function, created inside an expression or inside another syntax construct. Here, the function is created on the right side of the "assignment expression" `=`:
213-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
214198

215199
```js
216200
// Function Expression
@@ -307,29 +291,18 @@ if (age < 18) {
307291
welcome(); // \ (اجرا می‌شود)
308292
*/!*
309293
// |
310-
<<<<<<< HEAD
311294
function welcome() { // |
312295
alert("سلام!"); // | Function Declaration در دسترس است
313296
} // | هرجایی از بلوکی که داخل آن تعریف شده است
314-
=======
315-
function welcome() { // |
316-
alert("Hello!"); // | Function Declaration is available
317-
} // | everywhere in the block where it's declared
318-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
319297
// |
320298
*!*
321299
welcome(); // / (اجرا می‌شود)
322300
*/!*
323301
324302
} else {
325303
326-
<<<<<<< HEAD
327304
function welcome() {
328305
alert("درود!");
329-
=======
330-
function welcome() {
331-
alert("Greetings!");
332-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
333306
}
334307
}
335308
@@ -386,13 +359,8 @@ welcome(); // الان درست است
386359
```
387360

388361

389-
<<<<<<< HEAD
390362
```smart header="چه زمانی Function Declaration را انتخاب کنیم و چه زمانی Function Expression؟"
391363
به عنوان یک قاعده کلی، زمانی که ما نیاز به تعریف یک تابع داریم، اولین چیزی که باید سراغ آن برویم سینتکس Function Declaration است. آن به ما آزادی بیشتری برای سازماندهی کردن کد مان به ما می‌دهد، چون ما می‌توانیم چنین تابع‌هایی را قبل از اینکه تعریف شوند صدا بزنیم.
392-
=======
393-
```smart header="When to choose Function Declaration versus Function Expression?"
394-
As a rule of thumb, when we need to declare a function, the first thing to consider is Function Declaration syntax. It gives more freedom in how to organize our code, because we can call such functions before they are declared.
395-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
396364
397365
همچنین آن برای خوانایی نیز بهتر است، چون پیدا کردن `function f(...) {...}` در کد راحت تر است از `let f = function(...) {...}`. Function Declarationها "چشم نوازتر" هستند.
398366

1-js/02-first-steps/17-arrow-functions-basics/article.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,9 @@ alert(sum(1, 2)); // 3
6363
```js run
6464
let age = prompt("What is your age?", 18);
6565

66-
<<<<<<< HEAD
67-
let welcome = age < 18 ? () => alert("Hello") : () => alert("Greetings!");
68-
=======
6966
let welcome = (age < 18) ?
7067
() => alert('Hello!') :
7168
() => alert("Greetings!");
72-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
7369

7470
welcome();
7571
```

1-js/02-first-steps/18-javascript-specials/article.md

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,7 @@ for(;;) {
5555

5656
این دستور می‌تواند در ابتدای یک فایل جاوااسکریپت یا ابتدای یک تابع نوشته شود.
5757

58-
<<<<<<< HEAD
5958
بدون نوشتن `"use strict"` هم کد ما کار می‌کند، ولی بعضی چیزها در حالت قدیمی خود عمل می‌کنند. ما معمولاً رفتار مدرن آن‌ها را ترجیح می‌دهیم.
60-
=======
61-
Without `"use strict"`, everything still works, but some features behave in the old-fashioned, "compatible" way. We'd generally prefer the modern behavior.
62-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
6359

6460
بعضی از ویژگی‌های مدرن جاوااسکریپت (مثل کلاس‌ها که بعداً به آن می‌رسیم) به صورت خودکار و بدون اینکه نیازی باشد `"use strict"` را بنویسیم کد را در حالت strict اجرا می‌کنند.
6561

@@ -147,13 +143,8 @@ alert( "Tea wanted: " + isTeaWanted ); // true
147143
مقداردهی (Assignments)
148144
: دو نوع مقداردهی داریم: مقداردهی معمولی مثل `a = b` و مقداردهی ترکیبی مثل `a *= 2`.
149145

150-
<<<<<<< HEAD
151146
بیتی (Bitwise)
152147
: عملگرهای بیتی با اعداد 32 بیتی در پایین‌ترین سطح یعنی بیت کار می‌کنند: زمانی که به آنها نیاز داشتید به [مستندات](mdn:/JavaScript/Guide/Expressions_and_Operators#Bitwise) مراجعه کنید.
153-
=======
154-
Bitwise
155-
: Bitwise operators work with 32-bit integers at the lowest, bit-level: see the [docs](mdn:/JavaScript/Guide/Expressions_and_Operators#bitwise_operators) when they are needed.
156-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
157148

158149
شرطی (Conditional)
159150
: تنها اپراتور 3 پارامتری: `cond ? resultA : resultB`. اگر `cond` truthy باشد، `resultA` را برمی‌گرداند، در غیر این صورت `resultB`.
@@ -265,11 +256,7 @@ switch (age) {
265256
3. تابع پیکانی (Arrow Function)
266257

267258
```js
268-
<<<<<<< HEAD
269-
// :عبارت سمت راست برمی‌گردد
270-
=======
271-
// expression on the right side
272-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
259+
// عبارت سمت راست
273260
let sum = (a, b) => a + b;
274261
275262
// یا مدل چند خطی با {...}، که در این حالت باید return :هم بنویسید

1-js/03-code-quality/03-comments/article.md

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -138,25 +138,22 @@ function pow(x, n) {
138138
}
139139
```
140140

141-
<<<<<<< HEAD
142141
چنین یادداشت هایی به ما امکان می دهد بدون نگاه کردن به کد ، هدف از تابع را بفهمیم و از آن به روش صحیح استفاده کنیم.
143-
=======
144-
Such comments allow us to understand the purpose of the function and use it the right way without looking in its code.
145142

146-
By the way, many editors like [WebStorm](https://www.jetbrains.com/webstorm/) can understand them as well and use them to provide autocomplete and some automatic code-checking.
143+
راستی، بسیاری از ویراستارها مانند [WebStorm](https://www.jetbrains.com/webstorm/) می‌توانند آن‌ها را متوجه شوند و از آن‌ها برای فراهم کردن تکمیل خودکار و بعضی بررسی خودکار کدهای استفاده کنند.
147144

148-
Also, there are tools like [JSDoc 3](https://github.com/jsdoc/jsdoc) that can generate HTML-documentation from the comments. You can read more information about JSDoc at <https://jsdoc.app>.
145+
همچنین، ابزارهایی مانند [JSDoc 3](https://github.com/jsdoc/jsdoc) وجود دارند که می‌توانند از یادداشت‌ها مستنداتی در غالب HTML تولید کنند. شما می‌توانید درباره JSDoc در <https://jsdoc.app> بیشتر اطلاعات کسب کنید.
149146

150-
Why is the task solved this way?
151-
: What's written is important. But what's *not* written may be even more important to understand what's going on. Why is the task solved exactly this way? The code gives no answer.
152147

153-
If there are many ways to solve the task, why this one? Especially when it's not the most obvious one.
148+
چرا تمرین اینگونه حل شد؟
149+
: چیزی که نوشته شده است مهم است. اما برای فهمیدن اینکه چه چیزی در حال رخ دادن است شاید چیزی که نوشته *نشده* است مهمتر باشد. چرا این تمرین دقیقا به این روش حل شد؟ قطعه کد جوابی نمی‌دهد.
154150

155-
Without such comments the following situation is possible:
156-
1. You (or your colleague) open the code written some time ago, and see that it's "suboptimal".
157-
2. You think: "How stupid I was then, and how much smarter I'm now", and rewrite using the "more obvious and correct" variant.
158-
3. ...The urge to rewrite was good. But in the process you see that the "more obvious" solution is actually lacking. You even dimly remember why, because you already tried it long ago. You revert to the correct variant, but the time was wasted.
159-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
151+
اگر راه‌های زیادی برای حل این تمرین وجود دارد، چرا این یکی؟ خصوصا وقتی این راه‌حل واضح‌ترین آن‌ها نیست.
152+
153+
بدون چنین یادداشت‌هایی موقعیت زیر احتمال رخداد دارد:
154+
1. شما (یا همکار شما) کدی که چند وقت پیش نوشته شده است را باز می‌کنید و می‌بینید که این کد «زیرمجموعه« است.
155+
2. شما اینطور فکر می‌کنید: «چقدر آن زمان احمق وبدم و چقدر الان باهوش‌تر هستم» و کد با به روش «واضح‌تر و درست‌تر» بازنویسی می‌کنید.
156+
3. ...اصرار به بازنویسی خوب بود. اما در حین پروسه می‌بینید که روش «واضح‌تر» در واقع کمبود دارد. شما به سختی دلیل آن را به یاد می‌آورید چون خیلی وقت پیش آن را امتحان کردید. شما برمی‌گردید که این نوع کد نوشته شده را اصلاح کنید اما زمان هدر رفته.
160157

161158
به هر حال ، بسیاری از ویراستاران مانند
162159
[WebStorm](https://www.jetbrains.com/webstorm/)

1-js/03-code-quality/06-polyfills/article.md

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,7 @@
55

66
تیم‌های مسئول موتورهای جاوااسکریپت تصمیم می‌گیرند کدام یک را اول پیاده‌سازی کنند. ممکن است تصمیم بگیرند پیشنهادهایی که هنوز به‌صورت پیش‌نویس هستند را اول پیاده‌سازی کنند و پیشنهادهایی که در مرحلهٔ تشخیص هستند را به بعدتر موکول کنند، به دلیل اینکه کمتر جالب هستند و یا فقط سخت‌تر هستند.
77

8-
<<<<<<< HEAD
98
پس کاملا طبیعی است که یک موتور فقط بخشی از یک استاندارد را پیاده‌سازی کند.
10-
=======
11-
So it's quite common for an engine to implement only part of the standard.
12-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
139

1410
یک صفحه‌ی خوب برای این که ببینید در حال حاضر چه چیزهایی پشتیبانی می‌شود اینجاست <https://kangax.github.io/compat-table/es6/> (خیلی بزرگ است، ما چیزهای زیادی برای مطالعه داریم).
1511

@@ -44,15 +40,9 @@ height = height !== undefined && height !== null ? height : 100;
4440
4541
معمولا توسعه‌دهنده ترنسپایلر را روی کامپیوتر خودش اجرا می‌کند و سپس کد transpileشده را روی سرور deploy می‌کند.
4642
47-
<<<<<<< HEAD
4843
حالا که صحبتش شد، بهتر است بدانید [Babel](http://babeljs.io/) یکی از برجسته‌ترین ترنسپایلرها است.
4944
5045
سیستم‌های build پروژه مدرن مثل [webpack](https://webpack.js.org/) این امکان را می‌دهند که بعد از هر بار تغییر کد، ترنسپایلر به‌صورت اتوماتیک اجرا شود و برای همین ادغام کردن آن در روند توسعه کار بسیار ساده‌ای است.
51-
=======
52-
Speaking of names, [Babel](https://babeljs.io) is one of the most prominent transpilers out there.
53-
54-
Modern project build systems, such as [webpack](https://webpack.js.org/), provide a means to run a transpiler automatically on every code change, so it's very easy to integrate into the development process.
55-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
5646
5747
## پلیفیل‌ها
5848
@@ -79,34 +69,20 @@ if (!Math.trunc) { // اگر چنین تابعی وجود ندارد
7969
}
8070
```
8171
82-
<<<<<<< HEAD
8372
جاوااسکریپت یک زبان به‌شدت داینامیک است. اسکریپت‌ها می‌توانند هر تابعی را تغییر دهند یا اضافه کنند. حتی تابع‌های built-in.
8473
8574
دو کتابخانه جالب پلیفیل‌ها:
8675
- [core js](https://github.com/zloirock/core-js) که از چیزهای زیادی پشتیبانی می‌کند و اجازه می‌دهد فقط فیچرهای مورد نیاز خود را اضافه کنید.
8776
- [polyfill.io](http://polyfill.io) سرویسی که یک اسکریپت با پلیفیل‌ها ارائه می‌دهد. بسته به فیچرها و مرورگر کاربر.
88-
=======
89-
JavaScript is a highly dynamic language. Scripts may add/modify any function, even built-in ones.
90-
91-
Two interesting polyfill libraries are:
92-
- [core js](https://github.com/zloirock/core-js) that supports a lot, allows to include only needed features.
93-
- [polyfill.io](http://polyfill.io) service that provides a script with polyfills, depending on the features and user's browser.
94-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
9577
9678
9779
## خلاصه
9880
9981
در این فصل ما می‌خواهیم به شما انگیزه بدهیم تا بروید و فیچرهای جدید زبان را یاد بگیرید. حتی اگر هنوز توسط موتورهای جاوااسکریپت به‌خوبی پشتیبانی نمی‌شوند.
10082
101-
<<<<<<< HEAD
10283
فراموش نکنید که از یک ترنسپایلر (اگر از syntax یا عملگرهای مدرن استفاده می‌کنید) و پلیفیل‌ها (برای اضافه کردن تابع‌هایی که ممکن است موجود نباشند) استفاده کنید. و با این کار مطمئن خواهید بود که کد شما کار می‌کند.
10384
10485
برای مثال، بعدها که با جاوااسکریپت آشنایی بیشتری پیدا کنید، می‌توانید یک سیستم build کد با [webpack](https://webpack.js.org/) و پلاگین [babel-loader](https://github.com/babel/babel-loader) راه‌اندازی کنید.
105-
=======
106-
Just don't forget to use a transpiler (if using modern syntax or operators) and polyfills (to add functions that may be missing). They'll ensure that the code works.
107-
108-
For example, later when you're familiar with JavaScript, you can setup a code build system based on [webpack](https://webpack.js.org/) with the [babel-loader](https://github.com/babel/babel-loader) plugin.
109-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
11086
11187
منابع خوبی که نشان می‌دهند فیچرهای مختلف در چه حالتی از پشتیبانی قرار دارند:
11288
- <https://kangax.github.io/compat-table/es6/> - برای جاوااسکریپت.

0 commit comments

Comments
 (0)