Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ null === +"\n0\n" → false
1. true، نیاز به توضیح نداره.
2. false، بر اساس مقایسه لغت نامه ای که `"a"` کوچک تر از `"p"` است.
3. دوباره مانند مثال قبل در مقایسه لغت نامه ای حرف اول `"2"` بزرگ تر از حرف اول عبارت دیگر `"1"` است.
4. ارزش های `null` و `undefined` تنها برابر یکدیگرند.
4. مقادیر `null` و `undefined` تنها برابر یکدیگرند.
5. برابری سختگیرانه، سختگیرانه است. به دلیل تفاوت در نوع داده پاسخ false است.
6. مانند مثال شماره `(4)`، `null` تنها برابر `undefined` است.
7. برابری سختگیرانه برای دو داده از دو نوع متفاوت.
12 changes: 5 additions & 7 deletions 1-js/02-first-steps/09-comparison/article.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
- بزرگ تر / کوچک تر: <code>a &gt; b</code>، <code>a &lt; b</code>.
- بزرگ تر / کوچک تر یا مساوی: <code>a &gt;= b</code>، <code>a &lt;= b</code>.
- برابر یا مساوی: `a == b`، توجه کنید که علامت مساوی دوتایی (double equlity) `==` به معنای تست برابری است، در حالی که یک مساوی `a = b` مقدار سمت راست را در متغیر سمت چپ می ریزد.(asign).
- نا برابری: در ریاضی علامت نابرابری <code>&ne;</code> است، اما در جاوااسکریپت ما از علامت <code>a != b</code> استفاده می کنیم.
- نابرابری: در ریاضی علامت نابرابری <code>&ne;</code> است، اما در جاوااسکریپت به صورت <code>a != b</code> نوشته می‌شود.

در این مقاله ما بیشتر درباره تفاوت انواع مقایسه ها، چطور جاوااسکریپت آنها را انجام می دهد، به همراه رفتارهای عجیب و مهم این زبان.

در انتها شما می توانید به راحتی از از مشکلات مربوط به علامت ها (quirks) دوری کنید.
در انتها شما می توانید به راحتی از از مشکلات مربوط به علامت ها دوری کنید.

## ‌نتیجه یک boolean است

Expand Down Expand Up @@ -48,8 +48,6 @@ alert( 'Z' > 'A' ); // true
alert( 'Glow' > 'Glee' ); // true
alert( 'Bee' > 'Be' ); // true
```
let result = 5 > 4; // assign the result of the comparison
alert( result ); // true

الگوریتمی که برای مقایسه دو رشته استفاده می شود بسیار ساده است:

Expand All @@ -65,7 +63,7 @@ alert( result ); // true

1. `G` دقیقا مانند `G` است.
2. `l` دقیقا مانند `l` است.
3. `o` از `e`بزرگ تر است. الگوریتم در این جا به پایان می رسد و نتیجه می گیرد که رشته اول بزرگ تر است.
3. `o` از `e` بزرگ تر است. الگوریتم در این جا به پایان می رسد و نتیجه می گیرد که رشته اول بزرگ تر است.

```smart header="از نظر تکنیکی بر اساس یک دیکشنری عمل نمی کند ولی کد های یونی (unicode) آن مرتب شده اند."
ترتیب و ارزشی که در الگوریتم مقایسه بالا به هر حرف داده می شود، تقریبا مانند دیکشنری ها یا کتاب های تلفن است، اما نه دقیقا مشابه آن ها.
Expand All @@ -83,7 +81,7 @@ alert( '2' > 1 ); // true، رشته '2' به عدد 2 تبدیل می شود.
alert( '01' == 1 ); // true، رشته '01' به عدد 1 تبدیل می شود.
```

برای مقادیر از نوع boolean، `true` به `1` و `false` به `0` تبدیل می شود.
برای مقادیر از نوع `true` boolean به `1` و `false` به `0` تبدیل می شود.

برای مثال:

Expand All @@ -96,7 +94,7 @@ alert( false == 0 ); // true
این امکان وجود دارد که همزمان:

- دو مقدار با هم مساوی باشند.
- یکی از آن ها در نوع boolean `false` است و دیگری `true`.
- یکی از آن ها در نوع `false` boolean است و دیگری `true`.

برای مثال:

Expand Down