Skip to content

Commit 94019fd

Browse files
committed
Fix a part of conflicts
1 parent 75242ea commit 94019fd

7 files changed

Lines changed: 79 additions & 340 deletions

File tree

1-js/04-object-basics/09-object-toprimitive/article.md

Lines changed: 22 additions & 111 deletions
Large diffs are not rendered by default.

1-js/05-data-types/01-primitives-methods/1-string-new-property/task.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,4 @@ str.test = 5;
1515
alert(str.test);
1616
```
1717

18-
<<<<<<< HEAD
1918
فکر میکنید چطور کار خواهد کرد؟ چه چیزی نمایش داده خواهد شد؟
20-
=======
21-
What do you think, will it work? What will be shown?
22-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322

1-js/05-data-types/01-primitives-methods/article.md

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,8 @@ john.sayHi(); // Hi buddy!
3939

4040
## یک داده‌ ابتدایی به عنوان یک شئ
4141

42-
<<<<<<< HEAD
43-
تناقضی که سازنده جاوااسکریپت با آن مواجه شده:
44-
-خیلی کارها هستند که یک نفر بخواهد با داده‌های ابتدایی مثل رشته حروف یا اعداد انجام دهد که اگر دسترسی به آنها به عنوان تابع باشد عالی میشود.
45-
=======
46-
- There are many things one would want to do with a primitive, like a string or a number. It would be great to access them using methods.
47-
- Primitives must be as fast and lightweight as possible.
48-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
42+
-خیلی کارها هستند که یک نفر بخواهد با داده‌های ابتدایی مثل رشته حروف یا اعداد انجام دهد. اگر دسترسی به آنها با استفاده از متدها باشد عالی میشود.
43+
- مقدارهای اصلی باید تا حد امکان سریع و سبک باشند.
4944

5045
راه حال، اندکی عجیب به نظر میرسد:
5146

@@ -112,18 +107,11 @@ if (zero) { // zero is true, because it's an object
112107
}
113108
```
114109

115-
<<<<<<< HEAD
116-
از سویی دیگر، توابع مشابه `رشته حرف/عدد/متغیر بولی` بدون `new`، به شدت چیز به درد بخوری هستند. آنها یک مقدار را به نوع مربوطه‌شان تبدیل میکنند: یک رشته حرف، یک عدد یا یک متغیر بولی
110+
از سویی دیگر، استفاده از توابع مشابه `String/Number/Boolean` بدون `new`، کامل درست و مفید است. آنها یک مقدار را به نوع مربوطه‌شان تبدیل میکنند: یک رشته حرف، یک عدد یا یک متغیر بولی
117111
(داده ابتدایی).
118112

119113
برای مثال، این کاملا صحیح است:
120114

121-
=======
122-
On the other hand, using the same functions `String/Number/Boolean` without `new` is totally fine and useful thing. They convert a value to the corresponding type: to a string, a number, or a boolean (primitive).
123-
124-
For example, this is entirely valid:
125-
126-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
127115
```js
128116
let num = Number("123"); // convert a string to number
129117
```

1-js/05-data-types/02-number/article.md

Lines changed: 11 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,9 @@
22

33
در جاوااسکریپت، دو نوع عدد وجود دارد:
44

5-
<<<<<<< HEAD
65
1. اعداد معمولی در جاوااسکریپت با فرمت 64 بیتی [IEEE-754](https://en.wikipedia.org/wiki/IEEE_754-2008_revision) ذخیره می‌شوند، همچنین با "اعداد اعشاری با دقت یک صدم" هم شناخته می‌شوند. ما اکثر اوقات از این اعداد استفاده می‌کنیم، و درباره آنها در این فصل صحبت خواهیم کرد.
76

87
2. اعداد BigInt، برای نمایش اعدادی با طول دلخواه استفاده می‌شوند. آنها بعضی اوقات مورد نیاز هستند، چون اعداد معمولی نمی‌توانند از <code>2<sup>53</sup></code> بیشتر یا از <code>-2<sup>53</sup></code> کمتر باشند. چون bigintها در چند حوزه خاص استفاده می‌شوند، ما به آنها یک فصل خاص <info:bigint> اختصاص می‌دهیم.
9-
=======
10-
1. Regular numbers in JavaScript are stored in 64-bit format [IEEE-754](https://en.wikipedia.org/wiki/IEEE_754), also known as "double precision floating point numbers". These are numbers that we're using most of the time, and we'll talk about them in this chapter.
11-
12-
2. BigInt numbers represent integers of arbitrary length. They are sometimes needed because a regular integer number can't safely exceed <code>(2<sup>53</sup>-1)</code> or be less than <code>-(2<sup>53</sup>-1)</code>, as we mentioned earlier in the chapter <info:types>. As bigints are used in few special areas, we devote them a special chapter <info:bigint>.
13-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
148

159
پس اینجا درباره اعداد معمولی صحبت می‌کنیم. بیایید دانش‌مان درباره آنها را گسترش دهیم.
1610

@@ -28,11 +22,7 @@ let billion = 1000000000;
2822
let billion = 1_000_000_000;
2923
```
3024

31-
<<<<<<< HEAD
32-
اینجا خط تیره `_` نقش "syntactic sugar" را بازی می‌کند، و عدد را خواناتر می‌کند. موتور جاوااسکریپت به راحتی `_` بین ارقام را نادیده می‌گیرد، پس دقیقا عددی مانند یک میلیارد بالا است.
33-
=======
34-
Here the underscore `_` plays the role of the "[syntactic sugar](https://en.wikipedia.org/wiki/Syntactic_sugar)", it makes the number more readable. The JavaScript engine simply ignores `_` between digits, so it's exactly the same one billion as above.
35-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
25+
اینجا خط تیره `_` نقش "[syntactic sugar](https://en.wikipedia.org/wiki/Syntactic_sugar)" را بازی می‌کند، و عدد را خواناتر می‌کند. موتور جاوااسکریپت به راحتی `_` بین ارقام را نادیده می‌گیرد، پس دقیقا عددی مانند یک میلیارد بالا است.
3626

3727
اما در زندگی واقعی ما عموما از نوشتن رشته حرف با تعداد زیاد صفر خودداری میکنیم به خاطر اینکه به راحتی ممکن است خطا داشته باشیم و اشتباه بنویسیم. همینطور، ما تنبل هستیم! ما معمولا یه چیزی شبیه "1bn" مینویسیم به جای یک میلیارد یا "7.3bn" برای هفت میلیارد و سیصد میلیون. این حقیقت برای اکثر اعداد بزرگ هم صحیح است.
3828

@@ -60,11 +50,7 @@ let mсs = 0.000001;
6050
دقیقا مثل قبل، استفاده از `"e"` می‌تواند کمک کند. اگر ما بخواهیم که از نوشتن صفرها خودداری کنیم، می‌توانیم بنویسیم:
6151

6252
```js
63-
<<<<<<< HEAD
64-
let mcs = 1e-6; // شش صفر در سمت چپ ۱
65-
=======
66-
let mcs = 1e-6; // five zeroes to the left from 1
67-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
53+
let mcs = 1e-6; // پنج صفر در سمت چپ ۱
6854
```
6955

7056
اگر ما تعداد صفرهای `0.000001` را بشماریم، شش تا از آنها موجودست. بنابراین طبعا می‌شود `1e-6`.
@@ -78,8 +64,8 @@ let mcs = 1e-6; // five zeroes to the left from 1
7864
// -6 divides by 1 with 6 zeroes
7965
1.23e-6 === 1.23 / 1000000; // 0.00000123
8066

81-
// an example with a bigger number
82-
1234e-2 === 1234 / 100; // 12.34, decimal point moves 2 times
67+
// مثالی با یک عدد بزرگتر
68+
1234e-2 === 1234 / 100; // ممیز دو بار حرکت می‌کند، 12.34
8369
```
8470

8571
### اعداد پایه ۱۶، دودویی، پایه ۸
@@ -194,11 +180,7 @@ alert( num.toString(2) ); // 11111111
194180
alert( num.toFixed(1) ); // "12.4"
195181
```
196182

197-
<<<<<<< HEAD
198-
توجه داشته باشید که مقدار `toFixed` یک رشته حرفی‌ست. اگر قسمت بعد اعشار کوچک‌ترین مقدار لازم است، صفر به آخر آن اضافه خواهد شد:
199-
=======
200-
Please note that the result of `toFixed` is a string. If the decimal part is shorter than required, zeroes are appended to the end:
201-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
183+
توجه داشته باشید که مقدار `toFixed` یک رشته است. اگر قسمت بعد اعشار کوچک‌تر از آنجه نیاز است باشد، صفر به آخر آن اضافه خواهد شد:
202184

203185
```js run
204186
let num = 12.34;
@@ -209,11 +191,7 @@ alert( num.toString(2) ); // 11111111
209191

210192
## محاسبات تقریبی
211193

212-
<<<<<<< HEAD
213194
در درون سیستم، یک عدد به شکل ۶۴-بیتی است [IEEE-754](http://en.wikipedia.org/wiki/IEEE_754-1985)، بنابراین دقیقا ۶۴ بیت برای ذخیره‌ی یک عدد داریم: ۵۲ تا از آنها برای ذخیره کردن ارقام هستند، ۱۱ تا از آنها برای ذخیره کردن جایگاه نقطه‌ی مشخص کننده‌ی اعشار (که برای اعداد صحیح صفر است)، و یک بیت برای علامت آن.
214-
=======
215-
Internally, a number is represented in 64-bit format [IEEE-754](https://en.wikipedia.org/wiki/IEEE_754), so there are exactly 64 bits to store a number: 52 of them are used to store the digits, 11 of them store the position of the decimal point, and 1 bit is for the sign.
216-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
217195

218196
اگر عددی بیش از حد بزرگ باشد، حافظه‌ی ۶۴ بیتی سرریز می‌شود و به مقدار بی‌نهایت تبدیل می‌شود:
219197

@@ -329,13 +307,8 @@ alert( 9999999999999999 ); // shows 10000000000000000
329307
alert( isNaN("str") ); // true
330308
```
331309

332-
<<<<<<< HEAD
333310
اما آیا ما به این تابع نیاز داریم؟ نمیتوانیم صرفا از تساوی `=== NaN` استفاده کنیم؟‌ متاسفانه جواب خیر است. مقدار `NaN`، مقداری یکتاست و با هیچ چیز، حتی خودش برابر نیست.
334311

335-
=======
336-
But do we need this function? Can't we just use the comparison `=== NaN`? Unfortunately not. The value `NaN` is unique in that it does not equal anything, including itself:
337-
338-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
339312
```js run
340313
alert( NaN === NaN ); // false
341314
```
@@ -360,14 +333,8 @@ alert( isFinite(num) );
360333

361334
توجه داشته باشید که رشته حرفی‌ای که در آن فقط یک جای خالی باشد یا کلا خالی باشد، به عنوان صفر در همه‌ی توابع عددی از جمله `isFinite` در نظر گرفته میشود.
362335

363-
<<<<<<< HEAD
364336
```smart header="مقایسه کنید با `Object.is`"
365-
366-
یک تابع از پیش آماده شده‌ی خاص [Object.is](mdn:js/Object/is) که مقادیر را مثل `===` مقایسه میکند، اما برای دو حالت مرزی قابل اعتمادتر است.
367-
=======
368-
```smart header="Compare with `Object.is`"
369-
There is a special built-in method `Object.is` that compares values like `===`, but is more reliable for two edge cases:
370-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
337+
یک متد درون‌ساخت خاص به نام [Object.is](mdn:js/Object/is) وجود دارد که مقادیر را مثل `===` مقایسه میکند، اما برای دو حالت مرزی قابل اعتمادتر است:
371338
372339
۱. با `NaN` کار میکند: `Object.is(NaN, NaN) === true`، که چیز خوبیست.
373340
۲. مقادیر `0` و `-0` متفاوت هستند: `Object.is(0, -0) === false`، به ندرت اهمیت دارد، اما این مقادیر در اصل متفاوتند.
@@ -434,13 +401,8 @@ alert( parseInt('2n9c', 36) ); // 123456
434401
alert( Math.random() ); // ... (هر عدد تصادفی‌ای)
435402
```
436403

437-
<<<<<<< HEAD
438404
`Math.max(a, b, c...)` / `Math.min(a, b, c...)`
439405
: بزرگترین/کوچک‌ترین عدد را از بین تعداد دلخواه آرگومان‌ها بر‌می‌گرداند
440-
=======
441-
`Math.max(a, b, c...)` and `Math.min(a, b, c...)`
442-
: Returns the greatest and smallest from the arbitrary number of arguments.
443-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
444406

445407
```js run
446408
alert( Math.max(3, 5, -10, 0, 1) ); // 5
@@ -469,18 +431,14 @@ alert( parseInt('2n9c', 36) ); // 123456
469431
- `parseInt(str, base)` یک عدد صحیح را از هر سیستم عددی با پایه‌ی `2 ≤ base ≤ 36` را استخراج می‌کند.
470432
- `num.toString(base)` یک عدد را به یک رشته‌ی حرفی در سیستم عددی با پایه داده شده تبدیل می‌کند.
471433
472-
برای تبدیل مقادیری مثل `12pt` و `100px` به یک عدد:
434+
برای آزمایش عادی عددها:
473435
474-
<<<<<<< HEAD
475-
- `parseInt/parseFloat` را برای تبدیلات ساده استفاده کنید که یک عدد را از یک رشته‌ی حرفی می‌خواند و سپس مقداری که قبل از بروز خطا خوانده‌ست را برمی‌گرداند.
476-
=======
477-
For regular number tests:
436+
- `isNaN(value)` آرگومان خود را به یک عدد تبدیل می‌کند و بررسی می‌کند که `NaN` است یا خیر.
437+
- `isFinite(value)` آرگومان خود را به عدد تبدیل می‌کند و اگر یک عدد معمولی باشد `true` برمی‌گرداند نه اینکه `NaN/Infinity/-Infinity` باشد.
478438
479-
- `isNaN(value)` converts its argument to a number and then tests it for being `NaN`
480-
- `isFinite(value)` converts its argument to a number and returns `true` if it's a regular number, not `NaN/Infinity/-Infinity`
439+
برای تبدیل مقادیری مثل `12pt` و `100px` به یک عدد:
481440
482-
For converting values like `12pt` and `100px` to a number:
483-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
441+
- `parseInt/parseFloat` را برای تبدیلات ساده استفاده کنید که یک عدد را از یک رشته‌ی حرفی می‌خواند و سپس مقداری که قبل از بروز خطا خوانده‌ست را برمی‌گرداند.
484442
485443
برای کسرها:
486444

1-js/05-data-types/03-string/article.md

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,7 @@ let guestList = "Guests: // Error: Unexpected token ILLEGAL
4848
* John";
4949
```
5050

51-
<<<<<<< HEAD
5251
کوتیشن‌های تکی و دوتایی از زمان بسیار قدیم در زبان وجود داشتند زمانی که نیاز به رشته‌های چند خطی خیلی به چشم نمی‌آمد. Backtickها بعدها به وجود آمدند و به این ترتیب چند کاره هستند.
53-
=======
54-
Single and double quotes come from ancient times of language creation, when the need for multiline strings was not taken into account. Backticks appeared much later and thus are more versatile.
55-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
5652

5753
Backtickها به ما اجازه می‌دهند که یک "تابع الگو" قبل از backtick اول مشخص کنیم. سینتکس اینگونه است: <code>func&#96;string&#96;</code>. تابع `func` به طور خودکار صدا زده می‌شود، رشته را دریافت می‌کند و عبارات را ایجاد می‌کند و می‌تواند با آنها فرایندی انجام دهد. به این "الگوهای برچسب گذاری شده" می‌گویند. این ویژگی پیاده‌سازی الگوهای سفارشی را آسان‌تر می‌کند، اما در عمل خیلی کم استفاده می‌شود. می‌توانید درباره آن در [کتاب راهنما](mdn:/JavaScript/Reference/Template_literals#Tagged_templates) بیشتر بخوانید.
5854

@@ -376,13 +372,8 @@ alert( "Widget".includes("id", 3) ); // false وجود ندارد پس "id" از
376372
متدهای [str.startsWith](mdn:js/String/startsWith)(بررسی شروع شدن رشته با یک زیر رشته) و [str.endsWith](mdn:js/String/endsWith)(بررسی پایان یافتن رشته با یک زیر رشته) دقیقا کاری را که می‌گویند انجام می‌دهند:
377373

378374
```js run
379-
<<<<<<< HEAD
380-
alert( "Widget".startsWith("Wid") ); // true شروع می‌شود پس "Wid" با "Widget"
381-
alert( "Widget".endsWith("get") ); // true پایان می‌یابد پس "get" با "Widget"
382-
=======
383-
alert( "*!*Wid*/!*get".startsWith("Wid") ); // true, "Widget" starts with "Wid"
384-
alert( "Wid*!*get*/!*".endsWith("get") ); // true, "Widget" ends with "get"
385-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
375+
alert( "*!*Wid*/!*get".startsWith("Wid") ); // true شروع می‌شود پس "Wid" با "Widget"
376+
alert( "Wid*!*get*/!*".endsWith("get") ); // true پایان می‌یابد پس "get" با "Widget"
386377
```
387378

388379
## گرفتن یک زیر رشته
@@ -615,11 +606,7 @@ alert( '𝒳'.charCodeAt(1).toString(16) ); // dcb3, between 0xdc00 and 0xdfff
615606
616607
### نشانه‌های تفکیک کننده و عادی‌سازی
617608
618-
<<<<<<< HEAD
619609
در بسیاری از زبان‌ها نشانه‌هایی وجود دارند که ترکیبی از یک کاراکتر پایه و یک علامت در بالا/پایین آن هستند.
620-
=======
621-
In many languages, there are symbols that are composed of the base character with a mark above/under it.
622-
>>>>>>> 7000ede297bfd688f9a3767e8ca43abd9242f322
623610
624611
برای مثال، حرف `a` حرف پایه برای `àáâäãåā` است. اکثر کاراکترهای «ترکیب‌شده» متداول کد خود را در جدول UTF-16 دارند. اما نه همه آنها، چون ترکیبات ممکن بسیار زیادی وجود دارد.
625612

0 commit comments

Comments
 (0)